微信小程式 省市區選擇器實例詳解
微信小程式 省市區選擇器:
最近學習微信小程序,為了檢驗自己的學習效果,自己做一個小示例,網上搜索下類似的實例,發現這個更好,大家看下。
一、區域間手勢滑動切換,標題列高亮隨之切換
思路是:拿當前的current來決定高亮樣式
1.監聽swiper滾動到的位置:
<swiper class="swiper-area" current="{{current}}" bindchange="currentChanged"> currentChanged: function (e) { // swiper滚动使得current值被动变化,用于高亮标记 var current = e.detail.current; this.setData({ current: current }); }
登入後複製
.佈局檔中做條件判斷,是否加上高亮樣式,其中area-selected是目標樣式,color: red;
<text class="viewpager-title"> <text wx:if="{{current == 0}}" class="area-selected">{{provinceName}}</text> <text wx:else>{{provinceName}}</text> </text> <text class="viewpager-title"> <text wx:if="{{current == 1}}" class="area-selected">{{cityName}}</text> <text wx:else>{{cityName}}</text> </text> <text class="viewpager-title"> <text wx:if="{{current == 2}}" class="area-selected">{{regionName}}</text> <text wx:else>{{regionName}}</text> </text> <text class="viewpager-title"> <text wx:if="{{current == 3}}" class="area-selected">{{townName}}</text> <text wx:else>{{townName}}</text> </text>
登入後複製
provinceTapped: function(e) { ... that.setData({ cityName: '请选择', city: array, cityObjects: area }); ... }
登入後複製
二、標題列點擊切換,則區域間也隨著切換
changeCurrent: function (e) { // 记录点击的标题所在的区级级别 var current = e.currentTarget.dataset.current; this.setData({ current: current }); }
登入後複製
<text bindtap="changeCurrent" data-current="0">
登入後複製
標題列
資料綁定用起來果然是爽,寥寥幾句程式碼完成了點擊切換,要是別的平台的寫同樣的功能,這要寫半天。
三、回到前一級點擊某區域後,要自動將往後級的陣列、index、name、array清空,否則邏輯錯亂了。
provinceTapped: function(e) { // 标识当前点击省份,记录其名称与主键id都依赖它 var index = e.currentTarget.dataset.index; // current为1,使得页面向左滑动一页至市级列表 // provinceIndex是市区数据的标识 this.setData({ current: 2, cityIndex: index, regionIndex: -1, townIndex: -1, cityName: this.data.city[index], regionName: '', townName: '', region: [], town: [] }); ... }
登入後複製
四、修正一初始化即提供4個swiper-item的bug
處理方式是加一個陣列的元素個數是否為零,例如城市當它有值才顯現
<block wx:if="{{city.length > 0}}"> <swiper-item> <scroll-view scroll-y="true" class="viewpager-listview"> <view wx:for="{{city}}" wx:key="index" data-index="{{index}}" bindtap="cityTapped"> <text wx:if="{{index == cityIndex}}" class="area-selected">{{item}}</text> <text wx:else>{{item}}</text> </view> </scroll-view> </swiper-item> </block>
登入後複製
不用在picker上反覆點擊反覆選擇,也不會出現跨級點擊的問題,體驗上是不是有好一點呢?
感謝閱讀,希望能幫助大家,謝謝大家對本站的支持!
更多微信小程式 省市區選擇器實例詳解相關文章請關注PHP中文網!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前
By DDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前
By DDD
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)
