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


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 相关文章推荐
jQuery+.net实现浏览更多内容(改编php版本)
Mar 28 Javascript
JavaScript实现存储HTML字符串示例
Apr 21 Javascript
Javascript获取当前日期的农历日期代码
Oct 08 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
Aug 10 Javascript
Prototype框架详解
Nov 25 Javascript
jquery+css实现侧边导航栏效果
Jun 12 jQuery
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
vue中过滤器filter的讲解
Jan 21 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
js实现动态添加上传文件页面
2018/10/22 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
init进程的作用
2015/08/20 面试题
Python使用openpyxl复制整张sheet
2021/03/24 Python
音乐专业自荐信
2014/02/07 职场文书
仓库文员岗位职责
2014/04/06 职场文书
解除合同协议书
2014/04/17 职场文书
红旗渠导游词
2015/02/09 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
Java详细解析==和equals的区别
2022/04/07 Java/Android
Python 文字识别
2022/05/11 Python
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android