微信小程序下拉框实现
- 小程序中是没有直接的下拉框标签可以使用的,所以下拉框需要手动写,或者使用框架
- 因为考虑到下拉框展开的时候,可能需要遮挡住其余的样式,这里就用的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 页面上拉触底事件的函数. 在小程序里,用户顶部下拉是默认禁止的,我们 ...
随机推荐
- CF1408G Clusterization Counting
首先,我们需要给一个连通块找到一个直观的合法判定解. 那么我们必须以一种直观的方式将边按照权值分开,这样才能直观地判定一个合法的组. 一个常见的方式是将边从小到大依次加入进来,那么在任意时刻图上存在的 ...
- Vue2技术整理3 - 高级篇 - 更新完毕
3.高级篇 前言 基础篇链接:https://www.cnblogs.com/xiegongzi/p/15782921.html 组件化开发篇链接:https://www.cnblogs.com/xi ...
- git命令log与reflog的比较
感谢原文作者:杨鲜生 原文链接:https://blog.csdn.net/u013252047/article/details/80230781 用git命令,想看到自己的操作记录,则可以使用log ...
- JVM学习七-(复习)垃圾收集策略与算法
垃圾收集策略与算法 程序计数器.虚拟机栈.本地方法栈随线程而生,也随线程而灭:栈帧随着方法的开始而入栈,随着方法的结束而出栈.这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的 ...
- Idea 如何不通过模板创建支持Maven的JavaWeb项目
手动与模板创建的区别,请自行体会. 1. 点击创建项目 2. 不勾选骨架 3.填写项目名称以及该Maven项目坐标(groupid.artifactid.version). 在仓库中,以坐标确定项目. ...
- js null和{}区别
{}是一个不完全空的对象,因为他的原型链上还有Object呢,而null就是完全空的对象,啥也没有,原型链也没有,所以null instanceof Object === false;[]就更不用说了 ...
- 9、架构--动静分离、rewrite、HTTPS
笔记 1.晨考 1.说明反向代理跟负载均衡有哪些区别? 2.负载均衡分配流量的几种方式? 1.轮询 2.权重 3.ip_hash 3.负载均衡部署BBS的步骤 2.昨日问题 3.今日内容 1.资源分离 ...
- 教你写Spring组件
前言 原文地址:https://www.cnblogs.com/qnlcy/p/15905682.html 一.宗旨 在如日中天的 Spring 架构体系下,不管是什么样的组件,不管它采用的接入方式如 ...
- 从命令模式的维度理解Spring 之Application Event
Spring的事件(Application Event)为Bean与Bean之间的信息通讯提供了支持.当一个Bean处理完一个任务之后,希望另一Bean指定并能做相应的处理,这时我们就需要让另外一个B ...
- html页面预览pdf文件使用插件pdfh5.js
html预览pdf文件需要依赖pdf.js 移动端适配需要pdfh5.js 记录移动端适配pdfh5.js的用发 在线预览: https://www.gjtool.cn/pdfh5/pdf.html? ...