微信小程序——实现下拉框

1.wxml

<view class='list-msg'>
    <view class='list-msg1'>
        <text>商品金额</text>
        <text>¥99.00</text>
    </view>
<!--下拉框  -->
    <view class='list-msg2' bindtap='bindShowMsg'>
        <text>{{tihuoWay}}</text>
        <!-- <image style='height:20rpx;width:20rpx;' src=''></image> -->
    </view>
    
<!-- 下拉需要显示的列表 -->
      <view class="select_box" wx:if="{{select}}"> 
        <view class="select_one" bindtap="mySelect" data-name="重庆分店">重庆分店</view>
        <view class="select_one" bindtap="mySelect" data-name="东莞南城分店">东莞南城分店</view>
        <view class="select_one" bindtap="mySelect" data-name="东莞总店">东莞总店</view>
        <view class="select_one" bindtap="mySelect" data-name="上海分店">上海分店</view>
        <view class="select_one" bindtap="mySelect" data-name="北京分店">北京分店</view>
        <view class="select_one" bindtap="mySelect" data-name="成都分店">成都分店</view>
        <view class="select_one" bindtap="mySelect" data-name="河南分店">河南分店</view>
    </view> 
</view>

2.js

data: {
        select: false,
        tihuoWay: '选择类型'
    },

    bindShowMsg() {
         this.setData({
             select:!this.data.select
         })
    },
    mySelect(e) {
        var name = e.currentTarget.dataset.name
        this.setData({
            tihuoWay: name,
            select: false
        })
        console.log(name)
    },

3.wxss

 
.list-msg {
    padding: 0 20rpx;
    background-color: #fff;
    position: relative;
}
 
.list-msg1 {
    height: 60rpx;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
 
.list-msg .list-msg2 {
    height: 60rpx;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #ccc;
    padding: 0 10rpx;
}
 
.select_box {
    background-color: #eee;
    padding: 0 10rpx;
    width: 93%;
    position: absolute;
    top: 130rpx;
    z-index: 1;
    overflow: hidden;
    animation: myfirst 0.5s;
}
 
@keyframes myfirst {
    from {
        height: 0rpx;
    }
 
    to {
        height: 210rpx;
    }
}
 
.select_one {
    height: 60rpx;
    line-height: 60rpx;
    border-bottom: 1px solid #ccc;
}

 

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序中的Picker组件是一个内置的下拉框控件,它提供了一些默认样式和功能。如果需要自定义下拉框弹窗的样式,可以使用自定义组件实现。 以下是一个示例代码,演示如何使用自定义组件实现自定义下拉框弹窗样式: 1. 在小程序根目录下创建一个名为 "custom-picker" 的自定义组件文件夹,并在该文件夹下创建一个名为 "custom-picker.wxml" 的模板文件。 2. 在 custom-picker.wxml 文件中编下拉框弹窗的结构和样式,例如: ```html <view class="picker-container"> <view class="header"> <text class="cancel" bindtap="onCancel">取消</text> <text class="title">{{title}}</text> <text class="confirm" bindtap="onConfirm">确定</text> </view> <picker class="picker" value="{{value}}" range="{{range}}" bindchange="onChange"></picker> </view> ``` 3. 在 custom-picker.js 文件中编自定义组件的逻辑,例如: ```javascript Component({ properties: { title: String, value: Number, range: Array }, methods: { onCancel: function() { this.triggerEvent('cancel'); }, onConfirm: function() { this.triggerEvent('confirm', { value: this.data.value }); }, onChange: function(e) { this.setData({ value: e.detail.value }); } } }); ``` 4. 在使用该自定义组件的页面中,引入该组件并传入相应的属性,例如: ```html <custom-picker title="请选择" value="{{index}}" range="{{range}}" bind:cancel="onPickerCancel" bind:confirm="onPickerConfirm"></custom-picker> ``` 5. 在页面的 js 文件中编相应的逻辑,例如: ```javascript Page({ data: { range: ['选项一', '选项二', '选项三'], index: 0 }, onPickerCancel: function() { // 取消选择 }, onPickerConfirm: function(e) { const value = e.detail.value; // 确认选择 } }); ``` 通过以上步骤,就可以实现自定义下拉框弹窗的样式和功能。需要注意的是,自定义组件的样式和逻辑都需要自行编
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值