溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信小程序?qū)崿F(xiàn)下拉框功能

發(fā)布時(shí)間:2020-09-22 20:05:57 來源:腳本之家 閱讀:348 作者:西江無月 欄目:web開發(fā)

微信小程序里沒有和HTML里的下拉框一樣的組件,想要相同的效果只能自己寫一個(gè),先看效果

微信小程序?qū)崿F(xiàn)下拉框功能

下面來看一下代碼:

首先WXML

<view class='select_box'>
 <view class='select' catchtap='selectTap'>
  <text class='select_text'>{{selectData[index]}}</text>
  <image class='select_img {{show&&"select_img_rotate"}}' src='/image/gobottom.png'></image>   
 </view>
 <view class='option_box' style='height:{{show?(selectData.length>5?300:selectData.length*60):0}}rpx;'>
  <text class='option' style='{{index==selectData.length-1&&"border:0;"}}' wx:for='{{selectData}}' wx:key='this' data-index='{{index}}' catchtap='optionTap'>{{item}}</text>
 </view>
</view>
<!--
 show&&"select_img_rotate"-----給顯示框右邊的下拉箭頭添加動畫

 height:{{show?(selectData.length>5?300:selectData.length*60):0}}rpx;-----給改變下拉框高度,實(shí)現(xiàn)下拉框的顯示隱藏,每個(gè)下拉選項(xiàng)的高度為60,下拉框的最大高度這里設(shè)置的是300,所以這里寫成當(dāng)數(shù)據(jù)長度大于5時(shí),下拉框高度為300,反之下拉框高度為數(shù)據(jù)長度乘以60

 index==selectData.length-1&&"border:0;"-----取消下拉選項(xiàng)的最后一個(gè)的下邊框
 -->

然后WXSS(如果不想要動畫,刪掉wxss里的transition:transform 0.3s;和transition: height 0.3s;即可)

page{
 background: #f3f7f7;
}
.select_box{
 background: #fff;
 width: 80%;
 margin: 30rpx auto;
 position: relative;
}
.select{
 box-sizing: border-box;
 width: 100%;
 height: 70rpx;
 border:1px solid #efefef;
 border-radius: 8rpx;
 display: flex;
 align-items: center;
 padding: 0 20rpx;
}
.select_text{
 font-size: 30rpx;
 flex: 1;
}
.select_img{
 width: 40rpx;
 height: 40rpx;
 display: block;
 transition:transform 0.3s;
}
.select_img_rotate{
 transform:rotate(180deg); 
}
.option_box{
 position: absolute;
 top: 70rpx;
 width: 100%;
 border:1px solid #efefef;
 box-sizing: border-box;
 height: 0;
 overflow-y: auto;
 border-top: 0;
 background: #fff;
 transition: height 0.3s;
}
.option{
 display: block;
 line-height: 40rpx;
 font-size: 30rpx;
 border-bottom: 1px solid #efefef;
 padding: 10rpx;
}

這里是JS

Page({

 data: {
 show:false,//控制下拉列表的顯示隱藏,false隱藏、true顯示
 selectData:['1','2','3','4','5','6'],//下拉列表的數(shù)據(jù)
 index:0//選擇的下拉列表下標(biāo)
 },
 // 點(diǎn)擊下拉顯示框
 selectTap(){
 this.setData({
  show: !this.data.show
 });
 },
 // 點(diǎn)擊下拉列表
 optionTap(e){
 let Index=e.currentTarget.dataset.index;//獲取點(diǎn)擊的下拉列表的下標(biāo)
 this.setData({
  index:Index,
  show:!this.data.show
 });
 },
 onLoad: function (options) {
 
 }

})

完結(jié)!

有什么錯誤或者其他好的方法,請告知,謝謝

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI