用小程序原生写一个下拉菜单
时间: 2023-09-04 18:07:12 浏览: 54
好的,以下是一个简单的小程序原生下拉菜单实现示例:
```html
<view class="select-box" bindtap="showSelect">
<view class="select-value">{{selectedValue}}</view>
<view class="select-arrow"></view>
</view>
<view class="select-items" hidden="{{!showSelectItems}}">
<view class="select-item" wx:for="{{options}}" wx:key="{{index}}" bindtap="selectItem">{{item}}</view>
</view>
```
```css
.select-box {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.select-value {
font-size: 16px;
}
.select-arrow {
width: 0;
height: 0;
border-style: solid;
border-width: 5px 5px 0 5px;
border-color: #999 transparent transparent transparent;
}
.select-items {
position: absolute;
top: 45px;
left: 0;
right: 0;
border: 1px solid #ccc;
border-radius: 5px;
background-color: #fff;
z-index: 999;
}
.select-item {
padding: 10px;
font-size: 16px;
color: #333;
text-align: center;
border-top: 1px solid #ccc;
}
.select-item:first-child {
border-top: none;
}
```
```js
Page({
data: {
options: ['选项一', '选项二', '选项三'],
selectedValue: '',
showSelectItems: false
},
showSelect: function () {
this.setData({
showSelectItems: !this.data.showSelectItems
});
},
selectItem: function (e) {
this.setData({
selectedValue: e.currentTarget.dataset.value,
showSelectItems: false
});
}
})
```
这个示例中,我们通过一个 `select-box` 容器来展示当前选中的值和下拉箭头图标,点击该容器时会触发 `showSelect` 函数来显示或隐藏下拉菜单。下拉菜单的选项通过 `options` 数组来定义,每个选项都会被渲染成一个 `select-item` 元素,在点击其中的一个选项时会触发 `selectItem` 函数来更新当前选中的值并隐藏下拉菜单。CSS 样式中使用了一些基本的布局和样式,可以根据实际需要进行调整。