微信小程序实现下拉框功能


Posted in Javascript onJuly 16, 2019

微信小程序里没有和HTML里的下拉框一样的组件,想要相同的效果只能自己写一个,先看效果

微信小程序实现下拉框功能

下面来看一下代码:

首先WXML

<view class='select_box'>
 <view class='select' catchtap='selectTap'>
  <text class='select_text'>{{selectData[index]}}</text>
  <image class='select_img {{show&&"select_img_rotate"}}' src='/image/gobottom.png'></image>   
 </view>
 <view class='option_box' style='height:{{show?(selectData.length>5?300:selectData.length*60):0}}rpx;'>
  <text class='option' style='{{index==selectData.length-1&&"border:0;"}}' wx:for='{{selectData}}' wx:key='this' data-index='{{index}}' catchtap='optionTap'>{{item}}</text>
 </view>
</view>
<!--
 show&&"select_img_rotate"-----给显示框右边的下拉箭头添加动画

 height:{{show?(selectData.length>5?300:selectData.length*60):0}}rpx;-----给改变下拉框高度,实现下拉框的显示隐藏,每个下拉选项的高度为60,下拉框的最大高度这里设置的是300,所以这里写成当数据长度大于5时,下拉框高度为300,反之下拉框高度为数据长度乘以60

 index==selectData.length-1&&"border:0;"-----取消下拉选项的最后一个的下边框
 -->

然后WXSS(如果不想要动画,删掉wxss里的transition:transform 0.3s;和transition: height 0.3s;即可)

page{
 background: #f3f7f7;
}
.select_box{
 background: #fff;
 width: 80%;
 margin: 30rpx auto;
 position: relative;
}
.select{
 box-sizing: border-box;
 width: 100%;
 height: 70rpx;
 border:1px solid #efefef;
 border-radius: 8rpx;
 display: flex;
 align-items: center;
 padding: 0 20rpx;
}
.select_text{
 font-size: 30rpx;
 flex: 1;
}
.select_img{
 width: 40rpx;
 height: 40rpx;
 display: block;
 transition:transform 0.3s;
}
.select_img_rotate{
 transform:rotate(180deg); 
}
.option_box{
 position: absolute;
 top: 70rpx;
 width: 100%;
 border:1px solid #efefef;
 box-sizing: border-box;
 height: 0;
 overflow-y: auto;
 border-top: 0;
 background: #fff;
 transition: height 0.3s;
}
.option{
 display: block;
 line-height: 40rpx;
 font-size: 30rpx;
 border-bottom: 1px solid #efefef;
 padding: 10rpx;
}

这里是JS

Page({

 data: {
 show:false,//控制下拉列表的显示隐藏,false隐藏、true显示
 selectData:['1','2','3','4','5','6'],//下拉列表的数据
 index:0//选择的下拉列表下标
 },
 // 点击下拉显示框
 selectTap(){
 this.setData({
  show: !this.data.show
 });
 },
 // 点击下拉列表
 optionTap(e){
 let Index=e.currentTarget.dataset.index;//获取点击的下拉列表的下标
 this.setData({
  index:Index,
  show:!this.data.show
 });
 },
 onLoad: function (options) {
 
 }

})

完结!

有什么错误或者其他好的方法,请告知,谢谢

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
比较详细的javascript对象的property和prototype是什么一种关系
Aug 06 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
详解AngularJS控制器的使用
Mar 09 Javascript
jQuery 判断元素整理汇总
Feb 28 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
Jun 17 Javascript
jQuery.parseJSON()函数详解
Feb 28 jQuery
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
小程序实现长按保存图片的方法
Dec 31 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 Javascript
javascript中的this作用域详解
Jul 15 #Javascript
微信小程序页面上下滚动效果
Nov 18 #Javascript
node.js实现上传文件功能
Jul 15 #Javascript
js canvas实现5张图片合成一张图片
Jul 15 #Javascript
js使用文件流下载csv文件的实现方法
Jul 15 #Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
Jul 15 #Javascript
微信小程序开发技巧汇总
Jul 15 #Javascript
You might like
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
Python中的各种装饰器详解
2015/04/11 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
简历的个人自我评价范文
2014/01/03 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
工商管理本科生求职信
2014/07/13 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
社区文明倡议书
2015/04/28 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
JavaScript实现栈结构详细过程
2021/12/06 Javascript
浅谈JavaScript作用域
2021/12/06 Javascript