微信小程序之下拉列表实现方法解析(附完整源码)


Posted in Javascript onAugust 23, 2019

一、效果图

微信小程序之下拉列表实现方法解析(附完整源码)

二、实现原理

跟网页的下拉列表实现是一样的,刚刚开始默认下拉的内容的是不显示的(display:none),然后通过点击的时候,去更改 display 的属性值,来实现下拉的效果。然后下拉的动画的通过 css3 的 animation 来实现的。

CSS3中添加的新属性 animation 是用来为元素实现动画效果的,但是animation无法单独担当起实现动画的效果。承载动画的另一个属性 —— @keyframes。使用的时候为了兼容可加上-webkit-、-o-、-ms-、-moz-、-khtml-等前缀以适应不同的浏览器。

三、源码

实现比较简单,代码带有必要的解释,所有就不赘述了。如果有什么看不懂的,可以在评论区提问,博主每天都会回复的。

index.wxml

<!--page/one/index.wxml-->
<view class="page">
 <view class="nav-son" bindtap="listpx">
  <view>我的下拉列表</view>
  <image src='{{imgUrl}}'></image>
 </view>
 
 <view class="temp {{pxopen ? 'slidown' : 'slidup'}} {{pxshow ? 'disappear':''}}">
  <view wx:for="{{content}}">
   {{item}}
  </view>
 </view>
</view>
<button>按钮</button>

index.wxss

/* 下拉列表的样式 */
.nav-son{
 position: relative;
 /* 让下拉提示信息永远放于下拉内容的上面 */
 z-index: 99;
 border-top: 1px solid #d1d3d4;
 border-bottom: 1px solid #d1d3d4;
 background: #fff;
 display: flex;
 height: 40px;
 align-items:center;
 font-size: 18px;
}
/* 下拉列表 下三角的样式 */
.nav-son image{
 position: absolute;
 right: 30rpx;
 width: 50rpx;
 height: 50rpx;
}
 
/* 下拉框的样式 */
.temp{
 /* 默认为不显示 */
 display:none;
 /* 下拉框的宽度, */
 width: 100%;
 /* 下拉框的最大高度 */
 max-height: 750rpx;
 overflow-y: scroll;
 padding: 0 0 0 20rpx;
 line-height:100rpx;
 background: #fff;
}
 
/* 下拉框内容的样式 */
.temp view{
 border-bottom: 1px solid #d1d3d4;
 font-size: 14px;
 color: #666;
}
 
/* 下拉动画 */
/* @keyframes Css3 新标签,循环动画 */
@keyframes slidown{
 from{
  transform: translateY(-100%);
 }
 to{
  transform: translateY(0%);
 }
}
.slidown{
 display: block;
 animation: slidown .2s ease-in both;
}
 
/* 上拉动画 */
@keyframes slidup{
 from{
  transform: translateY(0%);
 }
 to{
  transform: translateY(-100%);
 }
}
.slidup{
 display: block;
 animation: slidup .2s ease-in both;
 height: 0px;
}

index.js

Page({
 data: {
  content: [],
  px: [],
  pxopen: false,
  pxshow: false,
  active:true,
  imgUrl: "../../images/down.png"
 },
 onLoad: function() {
  this.setData({
   px: ['>默认排序', '>离我最近']
  })
 },
 listpx: function(e) {
  console.log(e)
  if (this.data.pxopen) {
   this.setData({
    pxopen: false,
    pxshow: false,
    active: true,
    imgUrl: "../../images/down.png"
   })
  } else {
   this.setData({
    content: this.data.px,
    pxopen: true,
    pxshow: false,
    active:false,
    imgUrl: "../../images/up.png"
   })
  }
  console.log(e.target)
 }
})

四、项目下载

微信小程序之侧边栏滑动实现过程解析(附完整源码)

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

Javascript 相关文章推荐
JQUERY CHECKBOX全选,取消全选,反选方法三
Aug 30 Javascript
简明json介绍
Sep 28 Javascript
jQuery实现用方向键控制层的上下左右移动
Jan 13 Javascript
Jquery插件编写简明教程
Mar 25 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
webuploader模态框ueditor显示问题解决方法
Dec 27 Javascript
jQuery表单元素选择器代码实例
Feb 06 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
Mar 23 Javascript
javascript 中关于array的常用方法详解
May 05 Javascript
详解angularjs中如何实现控制器和指令之间交互
May 31 Javascript
vuex(vue状态管理)的特殊应用案例分享
Mar 03 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
Aug 23 #Javascript
微信小程序 授权登录详解(附完整源码)
Aug 23 #Javascript
vue使用微信JS-SDK实现分享功能
Aug 23 #Javascript
VUE实现移动端列表筛选功能
Aug 23 #Javascript
简述ES6新增关键字let与var的区别
Aug 23 #Javascript
微信小程序后台持续定位功能使用详解
Aug 23 #Javascript
详解基于Vue/React项目的移动端适配方案
Aug 23 #Javascript
You might like
Home Coffee Roasting
2021/03/03 咖啡文化
PHP教程 基本语法
2009/10/23 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
原生JS实现网络彩票投注效果
2016/09/25 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
python 文件查找及内容匹配方法
2018/10/25 Python
用Python配平化学方程式的方法
2019/07/20 Python
python实现桌面托盘气泡提示
2019/07/29 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
关于Python-faker的函数效果一览
2019/11/28 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
中医临床专业自我鉴定范文
2014/01/15 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
班级读书活动总结
2014/06/30 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
2015年环境监察工作总结
2015/07/23 职场文书