• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序下拉框实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  • 小程序中是没有直接的下拉框标签可以使用的,所以下拉框需要手动写,或者使用框架
  • 因为考虑到下拉框展开的时候,可能需要遮挡住其余的样式,这里就用的cover-view标签.(不考虑遮挡的可以换成普通的view标签)

 

1:视图添加以下代码:

    <view class="search-bar">
        <view class="condition" bindtap="showCondition">
            <view class="select-condition">{{choosedCondition.title}}</view>
            <view class="trigger {{ conditionVisible ? \'reverse\' : \'\'}}"></view>
            <cover-view class="option-list" style="height: {{conditionVisible ? \'300rpx\': \'0\'}}">
                <cover-view bindtap="onChnageCondition" data-id="{{item.id}}" class="list-item" wx:for="{{conditionList}}" wx:key="index" wx:for-index="index">
                    <cover-view class="title">{{item.title}}</cover-view>
                    <cover-view class="title" wx:if="{{item.select}}">√</cover-view>
                </cover-view>
            </cover-view>
        </view>
    </view>

2:wxss

/* 下拉框 */
  /* search */
.search-bar {
  width: 100%;
  height: 84rpx;
  background: #fff;
  /* border-top: 1rpx solid #f6f6f6; */
  box-sizing: border-box;
  padding: 0 20rpx;
  display: flex;
  align-items: center;
  /* border: 1rpx solid red; */
}

.search-bar .condition {
  width: 100%;
  height: 64rpx;
  /* border-radius: 30rpx; */
  background: #F4F4F4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  padding: 0 20rpx;
  position: relative;
}

.search-bar .condition .option-list {
  position: absolute;
  z-index: 100;
  width: 100%;
  left: 0;
  top: 60rpx;
  box-sizing: border-box;
  background: #f4f4f4;
  padding: 0rpx 20rpx;
  margin-top: 4rpx;
  border-radius: 6rpx;
}

.option-list .list-item {
  color: #BABABA;
  font-size: 26rpx;
  height: 60rpx;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.search-bar .condition .select-condition {
  color: #BABABA;
  font-size: 26rpx;
}

.search-bar .condition .trigger {
  width: 0;
  height: 0;
  border: 12rpx solid transparent;
  border-top: 15rpx solid #c2c2c2;
  position: relative;
  top: 8rpx;
  transform: rotate(0deg);
  transform-origin: center 7rpx;
  transition: transform 0.4s;
}

.search-bar .condition .trigger.reverse {
  transform: rotate(180deg);
  transform-origin: center 7rpx;
  transition: transform 0.4s;
}

/* 下拉框结束 */

3:wxjs

data: {
        tabType: \'tab1\',
        key: \'tab1\',
        conditionList: [{
                title: \'选项1\',
                id: \'1\',
                select: true
            },
            {
                title: \'选项2\',
                id: \'2\',
                select: false
            },
            {
                title: \'选项3\',
                id: \'3\',
                select: false
            },
            {
                title: \'选项4\',
                id: \'4\',
                select: false
            },
            {
                title: \'选项5\',
                id: \'5\',
                select: false
            }
        ],
        choosedCondition: {
            title: \'选项1\',
            id: \'1\'
        },
        conditionVisible: false,


    
    },

    showCondition() {
        this.setData({
            conditionVisible: !this.data.conditionVisible
        })
    },
    // 改变查询项
    onChnageCondition(e) {
        const list = this.data.conditionList
        list.forEach(item => {
            if (item.id === e.currentTarget.dataset.id) {
                item.select = true
                this.setData({
                    \'choosedCondition.title\': item.title,
                    \'choosedCondition.id\': item.id
                })
            } else {
                item.select = false
            }
        })
        this.setData({
            conditionList: list
        })
    },

6:效果图

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序——导入图标(2)发布时间:2022-07-18
下一篇:
小程序页面跳转传参参数值为url时参数时会出现丢失发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap