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


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 jsFiddle JSBin在线调试器
Mar 14 Javascript
利用location.hash实现跨域iframe自适应
May 04 Javascript
jQuery中:text选择器用法实例
Jan 03 Javascript
JavaScript汉诺塔问题解决方法
Apr 21 Javascript
JS+CSS实现表格高亮的方法
Aug 05 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
JS实现添加,替换,删除节点元素的方法
Jun 30 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
webpack入门必知必会
Jan 16 Javascript
JS获得一个对象的所有属性和方法实例
Feb 21 Javascript
react-navigation之动态修改title的内容
Sep 26 Javascript
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
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实现的简单检验登陆类
2015/06/18 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
js查错流程归纳
2012/05/04 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
Windows系统中安装nodejs图文教程
2015/02/28 NodeJs
详解JavaScript函数
2015/12/01 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
js的对象与函数详解
2019/01/21 Javascript
Python爬虫代理IP池实现方法
2017/01/05 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python dumps和loads区别详解
2020/02/04 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
小学生演讲稿
2014/01/12 职场文书
四查四看剖析材料
2014/02/14 职场文书
促销活动总结范文
2014/04/30 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
防溺水主题班会教案
2015/08/12 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫