官方api:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html
上边是官网的api。小程序中,底部下拉滚动选择主要有这几种
下拉选择,时间选择,城市选择,多项选择。
1.index.js中:
//index.js //获取应用实例 const app = getApp() Page({ data: { //设置初始值 array: [\'中国\', \'美国\', \'巴西\', \'俄罗斯\'], objectArray: [ { id: 0, name: \'中国\' }, { id: 1, name: \'美国\' }, { id: 2, name: \'巴西\' }, { id: 3, name: \'俄罗斯\' } ], index: 0, multiArray: [[\'无脊柱动物\', \'脊柱动物\'], [\'扁性动物\', \'线形动物\', \'环节动物\', \'软体动物\', \'节肢动物\'], [\'寄生虫\', \'吸血虫\']], objectMultiArray: [ [ { id: 0, name: \'无脊柱动物\' }, { id: 1, name: \'脊柱动物\' } ], [ { id: 0, name: \'扁性动物\' }, { id: 1, name: \'线形动物\' }, { id: 2, name: \'环节动物\' }, { id: 3, name: \'软体动物\' }, { id: 3, name: \'节肢动物\' } ], [ { id: 0, name: \'猪肉绦虫\' }, { id: 1, name: \'吸血虫\' } ] ], multiIndex: [0, 0, 0], date: \'2016-09-01\', time: \'12:01\', region: [\'辽宁省\', \'大连市\', \'高新园区\'], customItem: \'全部\' }, //普通选择器的点击事件 bindPickerChange: function (e) { console.log(\'picker发送选择改变,携带值为\', e.detail.value) this.setData({ index: e.detail.value }) }, //多列选择器 bindMultiPickerChange: function (e) { console.log(\'picker发送选择改变,携带值为\', e.detail.value) this.setData({ multiIndex: e.detail.value }) }, //多列选择器,某一列的值改变时触发事件 bindMultiPickerColumnChange: function (e) { console.log(\'修改的列为\', e.detail.column, \',值为\', e.detail.value); var data = { multiArray: this.data.multiArray, multiIndex: this.data.multiIndex }; data.multiIndex[e.detail.column] = e.detail.value; switch (e.detail.column) { case 0: switch (data.multiIndex[0]) { case 0: data.multiArray[1] = [\'扁性动物\', \'线形动物\', \'环节动物\', \'软体动物\', \'节肢动物\']; data.multiArray[2] = [\'寄生虫\', \'吸血虫\']; break; case 1: data.multiArray[1] = [\'鱼\', \'两栖动物\', \'爬行动物\']; data.multiArray[2] = [\'鲫鱼\', \'带鱼\']; break; } data.multiIndex[1] = 0; data.multiIndex[2] = 0; break; case 1: switch (data.multiIndex[0]) { case 0: switch (data.multiIndex[1]) { case 0: data.multiArray[2] = [\'猪肉绦虫\', \'吸血虫\']; break; case 1: data.multiArray[2] = [\'蛔虫\']; break; case 2: data.multiArray[2] = [\'蚂蚁\', \'蚂蟥\']; break; case 3: data.multiArray[2] = [\'河蚌\', \'蜗牛\', \'蛞蝓\']; break; case 4: data.multiArray[2] = [\'昆虫\', \'甲壳动物\', \'蛛形动物\', \'多足动物\']; break; } break; case 1: switch (data.multiIndex[1]) { case 0: data.multiArray[2] = [\'鲫鱼\', \'带鱼\']; break; case 1: data.multiArray[2] = [\'青蛙\', \'娃娃鱼\']; break; case 2: data.multiArray[2] = [\'蜥蜴\', \'龟\', \'壁虎\']; break; } break; } data.multiIndex[2] = 0; console.log(data.multiIndex); break; } this.setData(data); }, //日期选择器 bindDateChange: function (e) { console.log(\'picker发送选择改变,携带值为\', e.detail.value) this.setData({ date: e.detail.value }) }, //时间选择器 bindTimeChange: function (e) { console.log(\'picker发送选择改变,携带值为\', e.detail.value) this.setData({ time: e.detail.value }) }, //省市区选择器 bindRegionChange: function (e) { console.log(\'picker发送选择改变,携带值为\', e.detail.value) this.setData({ region: e.detail.value }) } })
2.index.wxml中:
<view class="section"> <view class="section__title">普通选择器:</view> <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> <view class="picker"> 当前选择:{{array[index]}} </view> </picker> </view> <view class="section"> <view class="section__title">多列选择器:</view> <picker mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}"> <view class="picker"> 当前选择:{{multiArray[0][multiIndex[0]]}},{{multiArray[1][multiIndex[1]]}},{{multiArray[2][multiIndex[2]]}} </view> </picker> </view> <view class="section"> <view class="section__title">时间选择器:</view> <picker mode="time" value="{{time}}" start="09:01" end="21:01" bindchange="bindTimeChange"> <view class="picker"> 当前选择: {{time}} </view> </picker> </view> <view class="section"> <view class="section__title">日期选择器:</view> <picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange"> <view class="picker"> 当前选择: {{date}} </view> </picker> </view> <view class="section"> <view class="section__title">省市区选择器:</view> <picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}"> <view class="picker"> 当前选择:{{region[0]}},{{region[1]}},{{region[2]}} </view> </picker> </view>
3.index.wxss中:
.section__title { margin: 20rpx; } .section { width: 100%; font-size: 35rpx; margin: 10rpx; color: #000; } .picker { color: #6BD44E; }