微信小程序之下拉列表
微信小程序之自定义下拉列表
在achun完成某个小程序作业的途中需要用到一个类似android spiner下拉列表的组件,发现在小程序文档里并木有,so百度了看到一个比较好的,调用超简单
效果图

代码如下
在wxml添加
<view class='top'>
<view class='top-text'> 选择班别</view>
<!-- 下拉框 -->
<view class='top-selected' bindtap='bindShowMsg'>
<text>{{grade_name}}</text>
</view>
<!-- 下拉需要显示的列表 -->
<view class="select_box" wx:if="{{select}}">
<view wx:for="{{grades}}" wx:key="unique">
<view class="select_one" bindtap="mySelect" data-name="{{item}}">{{item}}</view>
</view>
</view>
</view>
在wxss添加
/* 顶部 */
.top {
width: 100vw;
height: 80rpx;
padding: 0 20rpx;
line-height: 80rpx;
font-size: 34rpx;
border-bottom: 1px solid #000;
}
.top-text {
float: left;
}
/* 下拉框 */
.top-selected {
width: 50%;
display: flex;
float: right;
align-items: center;
justify-content: space-between;
border: 1px solid #ccc;
padding: 0 10rpx;
font-size: 30rpx;
}
/* 下拉内容 */
.select_box {
background-color: #fff;
padding: 0 20rpx;
width: 50%;
float: right;
position: relative;
right: 0;
z-index: 1;
overflow: hidden;
text-align: left;
animation: myfirst 0.5s;
font-size: 30rpx;
}
.select_one {
padding-left: 20rpx;
width: 100%;
height: 60rpx;
position: relative;
line-height: 60rpx;
border-bottom: 1px solid #ccc;
}
/* 下拉过度效果 */
@keyframes myfirst {
from {
height: 0rpx;
}
to {
height: 210rpx;
}
}
/* 下拉图标 */
.top-selected image {
height: 50rpx;
width: 50rpx;
position: absolute;
right: 0rpx;
top: 20rpx;
}
js页添加
Page({
data: {
select: false,
grade_name: '--请选择--',
grades: ['1班', '2班', '3班', ]
},
bindShowMsg() {
this.setData({
select: !this.data.select
})
},
mySelect(e) {
console.log(e)
var name = e.currentTarget.dataset.name
this.setData({
grade_name: name,
select: false
})
}
)}
使用指南
1.可以在onload方法里将你的数组数据setdata给grades数组,这样打开就是加载你的数组了
2.在mySelect接收点击的项,并调用所携带的数据
评论

