微信小程序下拉框实现
- 小程序中是没有直接的下拉框标签可以使用的,所以下拉框需要手动写,或者使用框架
- 因为考虑到下拉框展开的时候,可能需要遮挡住其余的样式,这里就用的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 页面上拉触底事件的函数. 在小程序里,用户顶部下拉是默认禁止的,我们 ...
随机推荐
- Maven仓库的目录结构
_remote.repositories文件 本地库中的包都有一个_remote.repositories文件,示例: #NOTE: This is an Aether internal implem ...
- Android 动态申请权限问题【转】
Android 动态申请权限问题 感谢大佬:https://www.jianshu.com/p/2324a2bdb3d4 感谢大佬:https://blog.csdn.net/weixin_42910 ...
- Idea快捷键---根据自己使用情况持续更新
查看接口的实现类 -->ctrl+alt+b 查看继承关系 -->ctrl+h 快速查看上次查看代码的位置: -->ctrl+alt+方向键(注意与intel显卡快捷键的冲突,如有冲 ...
- PRML 基础知识
1 一个经典例子 一个经典的例子就是Polynomial Curve Fitting问题,现在将以此为基础介绍一些基本概念和方法.该问题的主要思路是针对给定的训练集\(\mathbf{x}\equ ...
- Shell之awk
Shell之awk 目录 Shell之awk 一.awk概述 1. awk的工作原理 2. 命令格式 3. awk常见的内建变量(可直接用) 二.操作实例 1. 按行输出文本 2. 按字段输出文本 3 ...
- 用rewrite规则实现将所有到a域名的访问rewrite到b域名
1.临时重定向 1.1使用redirect实现临时重定向 # cat /apps/nginx/conf/nginx.conf ...省略... server { listen 80; server_n ...
- JavaWeb项目根路径问题
jsp中获取项目根路径: 方法① 最顶部增加代码: <% String path = request.getContextPath(); String basePath = request.ge ...
- 6 小时 Python 入门
6 小时 Python 入门 以下操作均在 Windows 环境下进行操作,先说明一下哈 一.安装 Python 1.官网下载 Python 进入官网(https://www.python.org), ...
- 02 前端基础之CSS
目录 前端基础之CSS css简介 基本选择器(重要) 组合选择器(重点) 属性选择器 分组与嵌套 伪类选择器 伪元素选择器 选择器的优先级 字体相关 背景属性 边框属性 display属性 盒子模型 ...
- vc++调试总结
.在debug->windows下,有以下调试窗口 1)Breakpoints管理断点信息 可以新建条件断点,函数断点,以及特定地址改变断点(用于检测数据发生改变时机点) 在断点处,可以进入汇编 ...