微信小程序實現select二級下拉
本文實例為大傢分享瞭微信小程序實現select二級下拉的具體代碼,供大傢參考,具體內容如下
xiala.wxml
<!-- 列表選擇 --> <view class="list" hover-class="none" hover-stop-propagation="false"> <text class="listText dd">3.請選擇門店</text> <view class="box" hover-class="none" hover-stop-propagation="false"> <view class='select_box'> <view class='select' catchtap='dianTap'> <input type="number" class='select_text' disabled="true" adjust-position="flase" value="{{dian[index]}}" name="lie" /> <image class='select_img {{dianShow&&"select_img_rotate"}}' src='/pages/image/b2.png' background-size="contain"></image> </view> <view class="option_bbox" hover-class="none" hover-stop-propagation="false"> <view class='option_box' style='height:{{dianShow?(area.length>5?325:dian.length*70):0}}rpx;'> <text class='option' wx:for='{{area}}' wx:key='this' data-index='{{index}}' data-aid='{{item.id}}' catchtap='areaId'>{{item.name}}</text> </view> <view class='option_box' style='height:{{dianShow?(dian.length>5?325:dian.length*70):0}}rpx;'> <text class='option' wx:for='{{dian}}' wx:key='this' data-index='{{dian}}' catchtap='optionTap'>{{item}}</text> </view> </view> </view> </view> </view>
js頁面
// pages/xiala/xiala.js Page({ /** * 頁面的初始數據 */ data: { liebiao:[], price:[], index:0, area:[], areaId:'', dian:[] }, /** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { var that = this; that.area(); }, // 獲取區域 area(){ var that = this; wx.request({ url: 'xxxxxx', header: { 'content-type': 'application/json' // 默認值 }, success(res) { console.log(res.data) let area = res.data.data; let obMut = []; let areaId; for(var i=0; i<area.length;i++){ areaId = area[0].id; obMut.push({id:area[i].id,name:area[i].name}); } that.setData({ areaId:areaId, area:obMut }) // console.log(that.data.areaId) that.dian(); } }) }, // 點擊改變區id areaId(e){ var that = this; that.setData({ areaId: e.currentTarget.dataset.aid, }) that.dian(); }, // 獲取店 dian:function(){ let that = this; let idx =that.data.areaId; let area = that.data.area; console.log(area) area.forEach((item, index) => { if (idx === item.id) { item.status = true wx.request({ url: 'xxxxxxx', dataType: 'json', method: 'POST', header: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: { aid: item.id }, success(res) { // console.log(res) let fmutA = that.data.fmutA; if (res.data.status === 1) { console.log(res.data.shop) let dian = res.data.shop; let fDian = []; for(var i=0; i<dian.length;i++){ fDian[i] = dian[i].name; } console.log(fDian) that.setData({ dian: fDian, }) } } }) }else{ item.status = false } }) }, // 點擊下拉顯示框 dianTap() { this.setData({ dianShow: !this.data.dianShow }); }, // 點擊下拉列表 optionTap(e) { let Index = e.currentTarget.dataset.index;//獲取點擊的下拉列表的下標 this.setData({ index: Index, dianShow: !this.data.dianShow }); } })
wxss頁面
/* 列表 */ /* pages/map/map.wxss */ .select_box{ width: 63%; height:70%; border-radius: 14rpx; position: relative; } .select_box .select{ box-sizing: border-box; width: 100%; height: 100%; border-radius: 8rpx; display: flex; align-items: center; } .select_box .select .select_text{ color: #777777; line-height: 28rpx; flex: 1; } .select_box .select .select_img{ width: 20rpx; height: 20rpx; display: block; transition:transform 0.3s; position: absolute; right: 25rpx; } .select_box .select .select_img_rotate{ transform:rotate(180deg); } .select_box .option_box{ position: absolute; top: calc(100% - 1px); width: 100%; box-sizing: border-box; height: 0; overflow-y: auto; background: #fff; transition: height 0.3s; border: 1px solid #efefef; border-right: 1px solid #efefef; background: #fcfcfc; } .select_box .option_box .option{ display: block; line-height: 38rpx; font-size: 9pt; border-top: 1px solid #efefef; border-bottom: 1px solid #efefef; padding: 10rpx; } .option_bbox{ display: flex; justify-content: row; } .select_box .option_box { position: relative; }
界面比較原始,建議自行美化
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Vue設置select下拉框的默認選項詳解(select空白bug解決)
- 微信小程序movable-view的可移動范圍示例詳解
- 微信小程序下拉框組件使用方法
- 微信小程序實現選擇內容顯示對應內容
- jquery實現戶籍地選擇下拉框