微信小程序開發-下拉框選項select option寫法

寫小程序時候,經常遇到使用下拉框選項,不過每次都手寫很麻煩,所有我就發一個例子吧,因為我包在其他模塊中,所有樣式不知道有沒有復制全,大家見諒!

小程序也有一個選項組件:picker 這個非常好用, 現在基本都用這個了。挺不錯。后來我才發現的。

·

好了,不啰嗦,如下:
image.png

image.png

image.png

每一個值的高度等你們可以隨意設置,看個人喜好。

變量解釋:

這個原理很簡單,首先準備一些標簽,準備一張圖片(展開與折疊用),數據綁定就不說了。
設置變量:selectShow, 控制下拉框列表是否顯示隱藏,我設置的是高度,顯示就設置高度,不顯示就設置為0; index,設置顯示第幾個數據,默認可以設置為0,根據需求; selectData,你要選擇的數據組[];

js事件:

當點擊三角時候,設置下拉框option選項顯示(高度)。當點擊選項值的時候,設置全局變量的下標值,標簽中會根據下標在數組中選中,綁定數據顯示, 然后設置下拉框option選項不顯示(高度0)。

Page({
  data: {
    selectShow: false,//控制下拉列表的顯示隱藏,false隱藏、true顯示
    selectData: ['15:10','15:15','15:20'],//下拉列表的數據
    index: 0,//選擇的下拉列表下標
  },
  // 點擊下拉顯示框
  selectTap() {
    this.setData({
      selectShow: !this.data.selectShow
    });
  },
  // 點擊下拉列表
  optionTap(e) {
    let Index = e.currentTarget.dataset.index;//獲取點擊的下拉列表的下標
    this.setData({
      index: Index,
      selectShow: !this.data.selectShow
    });
  }
})
頁面布局解釋:

option總高度設置,根據你有多少選項以及selectShow值是否顯示,我設置的是小于5個時候默認高度325rpx,超過五個時候,選項組length每一個50rpx,
height:{{selectShow?(selectData.length>5?325:selectData.length
50):0}}rpx;

這個是寫的一個樣式,我的圖片是倒三角,當展開時候,添加一個樣式,rotate180度。
class='select_img {{selectShow&&"select_img_rotate"}}' src='../../images/b2.png'

這個是我的選項內容是一組數組,所有我循環出來,順便綁定一個數據到標簽中data-index,也就是這個值在數組中的下標,點擊時候獲取方便用。然后添加一個事件catchtap='optionTap'。
wx:for='{{selectData}}' wx:key='this' data-index='{{index}}' catchtap='optionTap'

<view class='select_box'>
    <view class='select' catchtap='selectTap'>
        <text class='select_text'>{{selectData[index]}}</text>
        <image class='select_img {{selectShow&&"select_img_rotate"}}' src='../../images/b2.png'  background-size="contain"></image> 
    </view>
    <view class='option_box' style='height:{{selectShow?(selectData.length>5?325:selectData.length*50):0}}rpx;'>
        <text class='option' wx:for='{{selectData}}' wx:key='this' data-index='{{index}}' catchtap='optionTap'>{{item}}</text>
    </view>
</view>

wxss樣式:
不解釋,,看設計需求寫樣式。不過大多通用。

.select_box{
  width:45%;
  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;
  padding: 0 10rpx;
}
.select_box .select .select_text{
  font-size: 26rpx;
  color: #777777;
  line-height: 28rpx;
  flex: 1;
}
.select_box .select .select_img{
  width: 30rpx;
  height: 30rpx;
  display: block;
  transition:transform 0.3s;
}
.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-left:1px solid #efefef;
  border-right:1px solid #efefef;
}
.select_box .option_box .option{
  display: block;
  line-height: 30rpx; 
  font-size: 26rpx;
  border-top: 1px solid #efefef;
  border-bottom: 1px solid #efefef;
  padding: 10rpx;
}
看一送一:

寫程序時候,很多地方會用到時間選項,送大家一個函數。獲取一天時間分割數組。["00:00","00:05","00:10"....] 參數minute ,設置隔幾分鐘分割。時間格式你們可以自己改。

arrayTime: function (minute) {
    var array_t = [];
    var n = 60 / minute;
    for (var i = 0; i < 24; i++) {
      for (var j = 0; j < n; j++) {
          var _i=i<10?'0'+i:i;
          var _j=(minute * j)<10?'0'+(minute * j):(minute * j);
          array_t.push(_i + ':' + _j);
        }
     }
    return array_t;
  }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,663評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,125評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,506評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,614評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,402評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,934評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,021評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,168評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,690評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,596評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,784評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,288評論 5 357
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,027評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,404評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,662評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,398評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,743評論 2 370