微信小程序实现单列下拉菜单效果


Posted in Javascript onApril 25, 2019

 接下来我想做的是一个下拉菜单用来分类的,但是在网上搜了一下,基本上全都是比较复杂的分类菜单,最简单的也是分三列的下拉菜单,但是并不想要这么复杂的,最后找了一个三列的,改成了单列。也把代码尽可能的简单化了。

实现的效果图:

合并状态:

微信小程序实现单列下拉菜单效果

首先下面是目录结构: 

微信小程序实现单列下拉菜单效果

下面是实现的具体代码:

.wxml

<!--选择框-->
<view class="product-list">
 <!--条件选择-->
 <view class="choice-bar">
  <view bindtap="opens" data-item="1" class="chioce-item" hover-class="click-once-opaque">{{start}}
   <image class="icon-chioce" src="{{!isstart?openimg: offimg}}"></image>
  </view>
  <view class="sorting-list{{!isstart?' chioce-list-hide':' chioce-list-show'}}">
   <view wx:for="{{slist}}" catchtap="onclicks1" data-index="{{index}}" class="sorting-item" hover-class="click-once" wx:key="userInfoListId" >{{item.name}}</view>
  </view>
 </view>
</view>

.wxss

.product-list {
 width: 100%;
 box-sizing: border-box;
 
}
 
 
.choice-bar {
 position: fixed;
 display: flex;
 width: 100%;
 font-size: 14px;
 background-color: #fff;
 /**z-index: 0;**/
}
.chioce-item {
 background-color: #fff;
 display: flex;
 align-items: center;
 justify-content: space-between;
 padding: 0 20rpx;
 width: 100%;
 height: 80rpx;
 border-top: 1rpx solid #ddd;
 border-bottom: 1rpx solid #ddd;
 border-left: 1rpx solid #ddd;
 /*border-right: 1rpx solid #ddd;*/
}
 
.icon-chioce {
 height: 30rpx;
 width: 30rpx;
}
.district-list,.sorting-list,.filter-list {
 margin-top: 2rpx;
 position: absolute;
 top: 80rpx;
 left: 0;
 width: 100%;
 background-color: #fff;
 z-index: -1;
 font-size: 14px;
 border-bottom: 1rpx solid #ddd;
}
.chioce-list-hide {
 display: none !important;
}
.chioce-list-show {
 /**top: 80rpx;**/
 animation: slide 500ms;
}
 
.sorting-item {
 height: 80rpx;
 line-height: 80rpx;
 padding: 0 40rpx;
 border-bottom: 1rpx solid #ddd;
}

.js

Page({
 data: {
  start: "起始地",
  slist: [
   { id: 1, name: "第一类" },
   { id: 1, name: "第二类" },
   { id: 1, name: "第三类" },
   { id: 1, name: "第四类" },
   { id: 1, name: "第五类" },
  ],
  isstart: false,
  openimg: "/images/list/list.png",
  offimg: "/images/list/list1.png"
 },
 opens: function (e) {
  switch (e.currentTarget.dataset.item) {
   case "1":
    if (this.data.isstart) {
     this.setData({
      isstart: false,
     });
    }
    else {
     this.setData({
      isstart: true,
     });
    }
    break;
  }
 },
 onclicks1: function (e) {
  var index = e.currentTarget.dataset.index;
  let name = this.data.slist[index].name;
  this.setData({
   isstart: false,
   isfinish: false,
   isdates: false,
   start: this.data.slist[index].name,
   finish: "目的地"
  })
 }
})

以上所述是小编给大家介绍的微信小程序单列下拉菜单详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
实例:尽可能写友好的Javascript代码
Oct 09 Javascript
ExtJS 设置级联菜单的默认值
Jun 13 Javascript
jquery学习笔记 用jquery实现无刷新登录
Aug 08 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
Aug 22 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
Aug 25 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
javascript中异常处理案例(推荐)
Oct 03 Javascript
jQuery操作css样式
May 15 jQuery
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
Mar 06 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
Oct 28 Javascript
Vue组件通信的几种实现方法
Apr 25 #Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 #Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 #Javascript
页面内锚点定位及跳转方法总结(推荐)
Apr 24 #Javascript
详解Vue项目中实现锚点定位
Apr 24 #Javascript
微信小程序中使用echarts的实现方法
Apr 24 #Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 #Javascript
You might like
PHP+DBM的同学录程序(2)
2006/10/09 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
php实现求相对时间函数
2015/06/15 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
php获取linux命令结果的实例
2017/03/13 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
web前端开发也需要日志
2010/12/09 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
js 控制图片大小核心讲解
2013/10/09 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
面试常见的js算法题
2017/03/23 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
python查询mysql中文乱码问题
2014/11/09 Python
为python设置socket代理的方法
2015/01/14 Python
python对html代码进行escape编码的方法
2015/05/04 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
python连接PostgreSQL过程解析
2020/02/09 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
Prototype是怎么扩展DOM的
2014/10/01 面试题
如何用JQuery进行表单验证
2013/05/29 面试题
自我鉴定注意事项
2014/01/19 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
环境保护建议书
2014/08/26 职场文书
Redis高可用集群redis-cluster详解
2022/03/20 Redis