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


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 相关文章推荐
JS模块与命名空间的介绍
Mar 22 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
Aug 28 Javascript
chrome调试javascript详解
Oct 21 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
Dec 19 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
Apr 12 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
AngularJS模态框模板ngDialog的使用详解
May 11 Javascript
基于Vue实现平滑过渡的拖拽排序功能
Jun 12 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 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
1 Tube Radio
2021/03/02 无线电
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
js技巧--转义符&quot;\&quot;的妙用
2007/01/09 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
Vue实现简易计算器
2020/02/25 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
pyqt4教程之widget使用示例分享
2014/03/07 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
简历自荐信
2013/12/02 职场文书
毕业生求职的求职信
2013/12/05 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
学习十八大的心得体会
2014/09/12 职场文书
销售经理岗位职责
2015/01/31 职场文书
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫