微信小程序实现select二级下拉
作者:三许
这篇文章主要为大家详细介绍了微信小程序实现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; }
界面比较原始,建议自行美化
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。