微信小程序?qū)崿F(xiàn)select二級下拉
更新時間:2022年07月19日 12:00:04 作者:三許
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)select二級下拉效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)select二級下拉的具體代碼,供大家參考,具體內(nèi)容如下
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({ ? /** ? ?* 頁面的初始數(shù)據(jù) ? ?*/ ? data: { ? ? liebiao:[], ? ? price:[], ? ? index:0, ? ? area:[], ? ? areaId:'', ? ? dian:[] ? }, ?? ? /** ? ?* 生命周期函數(shù)--監(jiān)聽頁面加載 ? ?*/ ? onLoad: function (options) { ? ?var that = this; ? ?that.area(); ? ? ? }, // 獲取區(qū)域 area(){ ? var that = this; ? ? wx.request({ ? ? ? url: 'xxxxxx', ? ? ? header: { ? ? ? ? 'content-type': 'application/json' // 默認(rèn)值 ? ? ? }, ? ? ? 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(); ? ? ? } ? ? ?? ? ? }) ? ?? }, // 點(diǎn)擊改變區(qū)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 ? } ? }) }, ? // 點(diǎn)擊下拉顯示框 ? dianTap() { ? ? this.setData({ ? ? ? dianShow: !this.data.dianShow ? ? }); ? }, ? // 點(diǎn)擊下拉列表 ? optionTap(e) { ? ? let Index = e.currentTarget.dataset.index;//獲取點(diǎn)擊的下拉列表的下標(biāo) ? ? 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; }
界面比較原始,建議自行美化
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript如何在foreach循環(huán)完成之后執(zhí)行一個回調(diào)函數(shù)
forEach()是前端開發(fā)中操作數(shù)組的一種方法,主要功能是遍歷數(shù)組,其實(shí)就是 for 循環(huán)的升級版,下面這篇文章主要給大家介紹了關(guān)于javascript如何在foreach循環(huán)完成之后執(zhí)行一個回調(diào)函數(shù)的相關(guān)資料,需要的朋友可以參考下2023-11-11async/await實(shí)現(xiàn)Promise.acll()簡介
Promise.all() 方法接收一個 promise 的 iterable 類型的輸入,并且只返回一個Promise實(shí)例,并且輸入的所有 promise 的 resolve 回調(diào)的結(jié)果是一個數(shù)組,這篇文章主要介紹了async/await實(shí)現(xiàn)Promise.acll()簡介,需要的朋友可以參考下2022-11-11基于JavaScript實(shí)現(xiàn)貪吃蛇游戲
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03