摘要:先放上出來的效果看效果圖挺簡單的,因為懶。點擊選擇地址北京市北京市朝陽區朝外街道請選擇地址請選擇這個還是一目了然的,很簡單,下面是樣式。
????好久都沒有寫東西了,現在干的活都是重復和簡單的活,能總結出來的東西還是不太多。
????目前做電商平臺,其中用到選擇地址的控件,不過不是自己寫的,最近花時間重新自己做一個,目前就先吧功能樣式,功能完成第一版,之后再進行優化和升級,最終做成組件或者是插件形式,調用只需要幾行代碼去完成,不過這些都是后話了,目前顯示完成基本的樣子和功能。這一篇文章就當做寫東西的一個筆記,記錄一個過程。
????先放上出來的效果
????看效果圖挺簡單的,因為懶。就用了jquery加js,方法什么的也沒考慮性能啥的,就初步先做一個出來。后面再慢慢一步步優化。
????不愿意往下看的有興趣的可以直接看這里 githubd selectAddress-v1.0地址
????接下來我們進入正題!有什么問題可以留言跟我討論,這個功能不是很復雜,只是作為粗糙版就沒有考慮很多。
????接下來我們進入正題!有什么問題可以留言跟我討論,這個功能不是很復雜,只是作為粗糙版就沒有考慮很多。
第一步:構思功能樣子,先有概念!????首先至少得有想法,做成什么樣子,這個很重要,要是會點設計,可以自己先做個大概的圖或者原型,既然之后要做成組件,首先頁面上就得有個按鈕,然后彈出選擇地址的彈框,頁面上得有一個顯示選擇完地址的標簽。
????彈框出來之后,得有幾個部分,一個是頂部標題,叉叉按鈕用來隱藏,接下來是每級選擇完的地址顯示在中間,然后就是下面的每級地址列表,并且列表中若有選中的地址則標紅,這些都是最基本的。
????我這邊做的地址目前只有四級地址,不會有更深層次的地址,所以只有四列。構思好了,大概樣子就是下圖。
第二步:構思完之后就是構造頁面????構造頁面算是最簡單的部分了,就是寫html,css了。寫成上圖的樣子。
????因為四級地址列表考慮到多次切換留有緩存的問題,沒有做成每切換一次就請求一次,而是做成四個列表,通過隱藏顯示的方式來更方便的操作。
Title 點擊選擇地址北京市,北京市,朝陽區,朝外街道
????這個html還是一目了然的,很簡單,下面是css樣式。
body, html { -webkit-user-select: none; user-select: none } html { -webkit-text-size-adjust: 100% } body { line-height: 1.6; background-color: #f5f5f9; color: #4a4a4a; font-size: 14px; font-family: Arial, "微軟雅黑", Helvetica Neue, Helvetica, sans-serif; -webkit-overflow-scrolling: touch; overflow-scrolling: touch } * { margin: 0; padding: 0 } a img { border: 0 } a { text-decoration: none; -webkit-tap-highlight-color: transparent; -webkit-appearance: none } @font-face { font-weight: 400; font-style: normal; font-size: 14px; font-family: Arial, "微軟雅黑", Helvetica Neue, Helvetica, sans-serif } input, textarea { border: 0; outline: 0; -webkit-appearance: none; -webkit-tap-highlight-color: transparent; font-size: inherit; color: inherit } /*點擊選擇按鈕*/ .btn{ margin: 0 auto; width: calc(50%); height: 30px; margin-top: 100px; background-color: lightcyan; line-height: 30px; text-align: center; font-size: 14px; } .alignment_middle{ -webkit-box-align: center; -webkit-align-items: center; align-items: center; -webkit-box-pack: start; -webkit-justify-content: flex-start; justify-content: flex-start; display: -webkit-box; display: -webkit-flex; display: flex; } /*顯示文字*/ .show_address{ margin: 0 auto; margin-top: 10px; width: 80%; height: 30px; background-color: #fff; text-align: center; line-height: 30px; font-size: 14px; } /*背景*/ .yls_address_bg { position: fixed; top: 0; left: 0; height: 100%; width: 100%; background: #000; z-index: 500; opacity: .3; -webkit-transition: opacity .3s; transition: opacity .3s; touch-action: none } /*主彈框*/ .yls_address_main { position: fixed; left: 0; width: 100%; bottom: 0; background: #fff; border-radius: 10px 10px 0 0; box-shadow: 0 0 3px #e9e9e9; -webkit-transform: translate3d(0, 120%, 0); transform: translate3d(0, 120%, 0); -webkit-transition: -webkit-transform .3s; transition: -webkit-transform .3s; transition: transform .3s; transition: transform .3s, -webkit-transform .3s; z-index: 1001; transform: translate3d(0, 0, 0); } .yls_address_pop_top { text-align: center; height: 50px; margin-bottom: 5px; } .yls_address_pop_title { height: 100%; line-height: 50px; } .yls_address_pop_cancel { position: absolute; right: 0; top: 0; width: 50px; height: 50px; } .yls_address_pop_cancel::before, .yls_address_pop_cancel::after { content: ""; width: 16px; height: 1px; background: #000; display: block; position: absolute; right: 10px; top: 25px; } .yls_address_pop_cancel::before { transform: rotate(45deg); /*進行旋轉*/ } .yls_address_pop_cancel::after { transform: rotate(-45deg); } .yls_address_pop_main { } .yls_address_product{ } .yls_address_select{ height: calc(60vh); width: 100%; position: relative; overflow: hidden; } .yls_address_top_address{ font-size: 12px; height: 35px; overflow: hidden; border-bottom: 1px solid #ffffd; } .yls_address_top_address>div{ padding: 5px 5px; margin: 0 5px; white-space: nowrap; } .yls_address_top_address>div.show{ color: #c91623; border-bottom: #c91623 1px solid; } .yls_address{ position: absolute; left: 0; top: 45px; overflow: auto; width: 100%; height: calc(60vh - 35px); -webkit-transform: translate3d(-100%,0,0); transform: translate3d(-100%,0,0); -webkit-transition: -webkit-transform .3s .2s; transition: -webkit-transform .3s .2s; transition: transform .3s .2s; transition: transform .3s .2s,-webkit-transform .3s .2s; } .yls_address p{ padding: 8px 10px; font-size: 14px; } .yls_address p.p_show { position: relative; color: #c91623; } .yls_address.show { -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); }
????css上半部分是一些基本的初始化瀏覽器樣式,下面部分就是地址選擇的樣式,目前還沒加入動態效果,之后優化部分考慮做進去。不過這部分的樣式完全可以自己按照自己的喜好做,想做成什么樣子就做成什么樣子的。
第三步 :邏輯部分????這個部分算是最重要的,不過在此重申一遍,我做的只是粗糙的版本,邏輯部分是沒有經過任何優化的,這個大家可以按照自己優化的方式進行優化,后期我會做成插件形式再寫一篇。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/53514.html
摘要:先放上出來的效果看效果圖挺簡單的,因為懶。點擊選擇地址北京市北京市朝陽區朝外街道請選擇地址請選擇這個還是一目了然的,很簡單,下面是樣式。 ????好久都沒有寫東西了,現在干的活都是重復和簡單的活,能總結出來的東西還是不太多。 ????目前做電商平臺,其中用到選擇地址的控件,不過不是自己寫的,最近花時間重新自己做一個,目前就先吧功能樣式,功能完成第一版,之后再進行優化和升級,最終做成組件...
摘要:先放上出來的效果看效果圖挺簡單的,因為懶。點擊選擇地址北京市北京市朝陽區朝外街道請選擇地址請選擇這個還是一目了然的,很簡單,下面是樣式。 ????好久都沒有寫東西了,現在干的活都是重復和簡單的活,能總結出來的東西還是不太多。 ????目前做電商平臺,其中用到選擇地址的控件,不過不是自己寫的,最近花時間重新自己做一個,目前就先吧功能樣式,功能完成第一版,之后再進行優化和升級,最終做成組件...
閱讀 1376·2021-10-14 09:43
閱讀 4209·2021-09-27 13:57
閱讀 4552·2021-09-22 15:54
閱讀 2549·2021-09-22 10:54
閱讀 2350·2021-09-22 10:02
閱讀 2108·2021-08-27 13:11
閱讀 867·2019-08-29 18:44
閱讀 1639·2019-08-29 15:20