微信小程序实现单列下拉菜单效果
接下来我想做的是一个下拉菜单用来分类的,但是在网上搜了一下,基本上全都是比较复杂的分类菜单,最简单的也是分三列的下拉菜单,但是并不想要这么复杂的,最后找了一个三列的,改成了单列。也把代码尽可能的简单化了。
实现的效果图:
合并状态:
首先下面是目录结构:
下面是实现的具体代码:
.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 新提案optional chaining可选链属性原理详解
这篇文章主要为大家介绍了JavaScript 新提案optional chaining可选链属性原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-05-05javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
这篇文章主要介绍了javascript:警告(alert 消息对话框),确认(confirm 消息对话框)的实现代码,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-05-05JavaScript中valueOf函数与toString方法深入理解
基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题,本文将详细介绍,有需要的朋友可以参考下2012-12-12JavaScript错误处理之分析 Uncaught(in promise) error的
在开发过程中,JavaScript的错误处理是一个老生常谈的话题,当应用程序发生未捕获的异常时,Uncaught(in promise) error是其中最常见的错误类型,这篇文章将从多个方面详细阐述这种错误类型的原因与解决方案,感兴趣的朋友一起看看吧2023-12-12
最新评论