微信小程序下拉框实现
- 小程序中是没有直接的下拉框标签可以使用的,所以下拉框需要手动写,或者使用框架
- 因为考虑到下拉框展开的时候,可能需要遮挡住其余的样式,这里就用的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:效果图

微信小程序下拉框实现的更多相关文章
- 微信小程序下拉框
微信小程序里没有和HTML里的下拉框一样的组件,想要相同的效果只能自己写一个,先看效果 下面来看一下代码: 首先WXML <view class='select_box'> <vie ...
- 微信小程序下拉框组件
>>下拉组件 1.组件结构: 2.index.js: //index.js Component({ /** * 组件的属性列表 */ properties: { propArray: { ...
- 微信小程序下拉框之二维数组或对象
在项目中,我们大多数时候传的值并不是需要这个下标,而是其他的值.像我项目中,需要获取到的是它对应的Id,那么我们如何通过它的这个下标值返回你想要的值呢? 通过picker返回的索引值,去获取匹配你想获 ...
- 微信小程序下拉加载和上拉刷新两种实现方法
方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 设置js里onPullDownRefresh和onR ...
- 微信小程序下拉加载下一页
小程序做得多了,有些常用功能就有必要记录一下 请看详解: 微信小程序之下拉触底时加载下一页 wxml参考: <scroll-view class='dataContainer' scroll-y ...
- 微信小程序 - 下拉菜单组件
使用: 1.导入组件 2.使用组件 3.数据传入 4. 获取数据(通过同步缓存,获取“choose”)- 发送到后端 点击下载:小程序-下拉组件.
- 关于微信小程序下拉出现三个小点
包子这天看美团外卖的小程序,再瞅瞅自己的背景色,发现,美团下拉的时候有三个小点,但是我自己的校车徐下拉的时候没有三个小点,很是郁闷,于是各种的找各种的找,发现,这三个小点是微信小程序自带的,你只需要设 ...
- 微信小程序~下拉刷新PullDownRefresh
一.onPullDownRefresh回调 代码: // http://itlao5.com onPullDownRefresh: function () { console.log('onPul ...
- 微信小程序 --- 下拉刷新上拉加载
查看文档看到:page()函数注册页面的时候,有 onPullDownRefresh 监听用户下拉动作,onReachBottom 页面上拉触底事件的函数. 在小程序里,用户顶部下拉是默认禁止的,我们 ...
随机推荐
- 生成"cmd.exe"错误
转载请注明来源:https://www.cnblogs.com/hookjc/ 在VC2005里打开"工具"菜单,选择"选项",打开"选项" ...
- linux中shell变量$#等的释义
linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: 1. $$ Shell本身的PID(ProcessID) 2. $! Shell最后运行的后台Process的PID 3 ...
- classpath环境变量(JDK5.0之后不建议配置)
classpath的作用: 作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,一旦配置了classpath路径信息的时候,jvm与java编译器都会根据classpath指定的路径 ...
- Java向mysql中插入时间的方法
ava向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 java向MySQL插入当前时间的四种方式 第一种:将java.util.Date类型的 ...
- Docker部署lnmp 实战 (多注意配置文件,不管访问试试换个浏览器)
Docker部署LNMP环境 关闭防火墙,设置自定义网络 systemctl stop firewalld systemctl disable firewalld setenforce 0 docke ...
- 编译安装nginx,实现多域名 https
一.编译安装nginx 1.1 获取源码包 [root@cetnos7 ~]#wget -O /usr/local/src/nginx-1.18.0.tar.gz http://nginx.org/d ...
- python篇第10天【For 循环语句】
实例 #!/usr/bin/python # -*- coding: UTF-8 -*- for a in 'Henry': print "This is ", a fru ...
- 国产操作系统deepin安装与配置Node-RED环境
1.1. 测试机配置清单 部件名称 版本号 备注 处理器 Intel Core i5 3320M 显卡 自带集显 内存 8G DDR3单通道 显示插口 VGA*1,HDML*1 1.2. 系统安装及配 ...
- .NET 云原生架构师训练营(权限系统 代码实现 EntityAccess)--学习笔记
目录 开发任务 代码实现 开发任务 DotNetNB.Security.Core:定义 core,models,Istore:实现 default memory store DotNetNB.Secu ...
- Solution -「Gym 102798K」Tree Tweaking
\(\mathcal{Description}\) Link. 给定排列 \(\{p_n\}\),求任意重排 \(p_{l..r}\) 的元素后,将 \(\{p_n\}\) 依次插入二叉搜索树 ...