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


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 相关文章推荐
Js基础学习资料
Nov 23 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
May 05 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 Javascript
React组件生命周期详解
Jul 03 Javascript
JavaScript实现简单图片轮播效果
Aug 21 Javascript
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
webstorm中vue语法的支持详解
May 09 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
Nov 15 Javascript
让JavaScript代码更加精简的方法技巧
Jun 01 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企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
Js apply方法详解
2017/02/16 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
2020/02/15 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
简单介绍Python中的几种数据类型
2016/01/02 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python变量的作用域是什么
2020/05/26 Python
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
2017/06/15 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
计算机软件个人的自荐信范文
2013/12/01 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
超市店庆活动方案
2014/08/31 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
自主招生学校推荐信
2014/09/26 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS