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

 更新时间:2019年04月25日 08:36:25   作者:胡晓天o0  
这篇文章主要介绍了微信小程序单列下拉菜单,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

实现的效果图:

合并状态:

首先下面是目录结构: 

下面是实现的具体代码:

.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: "目的地"
  })
 }
})

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

相关文章

  • JS项目中对本地存储进行二次的封装的实现

    JS项目中对本地存储进行二次的封装的实现

    这篇文章主要介绍了JS项目中对本地存储进行二次的封装,这里我们将要使用到的key存储下来,新建一个叫constant-storage.js的文件,对外暴露一些key的键名,也方便后期统一修改,这里因为都是恒量,所以名称我们都用大写表示,需要的朋友可以参考下
    2022-07-07
  • Swiper.js插件超简单实现轮播图

    Swiper.js插件超简单实现轮播图

    这篇文章主要介绍了Swiper.js插件超简单实现轮播图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解JavaScript如何利用异步解密回调地狱

    详解JavaScript如何利用异步解密回调地狱

    为了更好地处理这些异步操作,JavaScript 引入了异步编程的概念,这篇文章主要来和大家详细聊聊JavaScript中异步的相关应用,希望对大家有所帮助
    2024-02-02
  • css如何让浮动元素水平居中

    css如何让浮动元素水平居中

    css中对于定宽的非浮动元素用margin:0 auto进行水平居中,对于不定宽的浮动元素也有一个常用技巧,这篇文章就给大家介绍下css如何让浮动元素水平居中,需要的朋友可以来学习下
    2015-08-08
  • JavaScript保存并运算页面中数字类型变量的写法

    JavaScript保存并运算页面中数字类型变量的写法

    这篇文章主要介绍了JavaScript保存并运算页面中数字类型变量的写法,当你在页面中需要不停运算一个数字变量时非常有用,普通的写法不能正常运算,使用本文方法就可以,需要的朋友可以参考下
    2015-07-07
  • JS检测浏览器开发者工具是否打开的方法详解

    JS检测浏览器开发者工具是否打开的方法详解

    本篇文章主要讲述几种前端JS检测开发者工具是否打开的方法,需要的朋友可以参考下
    2020-10-10
  • Bootstrap表单组件教程详解

    Bootstrap表单组件教程详解

    表单常见的元素主要包括:文本输入框、下拉选择框、单选框、复选框、文本域、按钮等。接下来通过本文给大家介绍Bootstrap表单组件教程,感兴趣的朋友一起学习吧
    2016-04-04
  • 使用Typescript开发微信小程序的步骤详解

    使用Typescript开发微信小程序的步骤详解

    这篇文章主要介绍了使用Typescript开发微信小程序的步骤详解,本文分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Eval and new funciton not the same thing

    Eval and new funciton not the same thing

    以前有人会说,new Function的方式是几乎与eval相等,今天我查了一下,确实是不同的东西,说这句话的人太不负责了。关于eval和new function,得到的结果都是一致的,都会叫你不要去使用它们。所以结论就是“不得不”才使用
    2012-12-12
  • JavaScript开发人员的10个关键习惯小结

    JavaScript开发人员的10个关键习惯小结

    还在一味没有目的的编写JavaScript代码吗?那么你就OUT了!让我们一起来看看小编为大家搜罗的JavaScript开发人员应该具备的十大关键习惯吧
    2014-12-12

最新评论