当前位置:首页 > 日记 > 正文

微信小程序 下拉菜单的实现

微信小程序 下拉菜单的实现

微信小程序 下拉菜单

看下实现效果图:

实例:

//wcss /**DropDownMenu**/  /*总菜单容器*/  .menu {  display: block;  height: 28px;  position: relative; }  /*一级菜单*/  .menu dt {  font-size: 15px;  float: left;  /*hack*/  width: 33%;  height: 38px;  border-right: 1px solid #d2d2d2;  border-bottom: 1px solid #d2d2d2;  text-align: center;  background-color: #f4f4f4;  color: #5a5a5a;  line-height: 38px;  z-index: 2; }  /*二级菜单外部容器样式*/  .menu dd {  position: absolute;  width: 100%;  margin-top: 40px;  left: 0;  z-index: -99; }  /*二级菜单普通样式*/  .menu li {  font-size: 14px;  line-height: 34px;  color: #575757;  height: 34px;  display: block;  padding-left: 8px;  background-color: #fff;  border-bottom: 1px solid #dbdbdb; }  /*二级菜单高亮样式*/  .menu li.highlight {  background-color: #f4f4f4;  color: #48c23d; }  /* 显示与隐藏 */  .show {  /*display: block;*/  visibility: visible; }  .hidden {  /*display: none;*/  visibility: hidden; } 
//wxml  <dl class="menu">   <block wx:for="{{reportData}}" wx:key="idMenu" wx:for-item="menuItem" wx:for-index="idMenu">    <dt data-index="{{idMenu}}" bindtap="tapMainMenu">{{menuItem.reportType}}</dt>    <dd class="{{subMenuDisplay[idMenu]}}" animation="{{animationData[idMenu]}}">     <ul wx:for="{{menuItem.chilItem}}" wx:key="chilItem.ID" wx:for-item="chilItem" wx:for-index="idChil">      <li class="{{subMenuHighLight[idMenu][idChil]}}" bindtap="tapSubMenu" data-index="{{idMenu}}-{{idChil}}">{{chilItem.Name}}</li>     </ul>     <picker class="timePicker" mode="date" value="{{dateValue}}" bindchange="datePickerBindchange" start="1999-01-01" end="2999-12-12"> 时间:{{dateValue}}</picker>    </dd>   </block> </dl> 

JS 代码:

//js //数据源 var ReportDataSync = [   {     reportType: "日报1",     chilItem: [       { ID: 1, Name: "日报1", ReportUrl: "DailyReport.aspx", Type: 1 },       { ID: 2, Name: "日报2", ReportUrl: "DailyReport.aspx", Type: 1 },       { ID: 3, Name: "日报3", ReportUrl: "DailyReport.aspx", Type: 1 }]   },   {     reportType: "目录2",     chilItem: [       { ID: 1, Name: "目录1", ReportUrl: "DailyReport.aspx", Type: 2 },       { ID: 2, Name: "目录2", ReportUrl: "DailyReport.aspx", Type: 2 },       { ID: 3, Name: "目录3", ReportUrl: "DailyReport.aspx", Type: 2 },       { ID: 4, Name: "目录4", ReportUrl: "DailyReport.aspx", Type: 2 }]   },   {     reportType: "月报3",     chilItem: [       { ID: 1, Name: "月报1", ReportUrl: "DailyReport.aspx", Type: 1 },       { ID: 2, Name: "月报2", ReportUrl: "DailyReport.aspx", Type: 2 }]   } ]  //定义字段 var initSubMenuDisplay = []  var initSubMenuHighLight = []  /// 初始化DropDownMenu loadDropDownMenu()  that.setData({   reportData: ReportDataSync,//菜单数据   subMenuDisplay: initSubMenuDisplay, //一级   subMenuHighLight: initSubMenuHighLight //二级 })    //一级菜单点击 tapMainMenu: function (e) {   //获取当前一级菜单标识   var index = parseInt(e.currentTarget.dataset.index);   //改变显示状态   for (var i = 0; i < initSubMenuDisplay.length; i++) {     if (i == index) {       if (this.data.subMenuDisplay[index] == "show") {         initSubMenuDisplay[index] = 'hidden'       } else {         initSubMenuDisplay[index] = 'show'       }     } else {       initSubMenuDisplay[i] = 'hidden'     }   }   this.setData({     subMenuDisplay: initSubMenuDisplay   }) },  //二级菜单点击 tapSubMenu: function (e) {   //隐藏所有一级菜单   //this.setData({   //subMenuDisplay: initSubMenuDisplay()   /

相关文章

excel2013如何快速选中复制筛选出

excel2013如何快速选中复制筛选出

数据,筛选,方法,复制粘贴,快速,  我们在使用excel进行数据筛选的时候,我们对于筛选出来的数据要把它复制到另外一个表格中,对于数据少的时候我们可以通过托拽的形式进行选择,但是对于数据比较多的情况下,我们如何快速进行选择复制呢,今天小编…

详解Vue中添加过渡效果

详解Vue中添加过渡效果

过渡效果,详解,电脑软件,Vue,最近在学习Vue这个框架,发现新的版本中,官网的文档里面说的过渡效果,如果直接粘贴官方的例子中的代码,发现并没有过渡的效果,经过反复测试之后终于知道怎么搞了,把测试的过程总结一下,以便以后回顾。贴上成功的代码:htm…

JavaScript数组去重的多种方法 |

JavaScript数组去重的多种方法 |

方法,数组去重,四种,多种,电脑软件,数组去重,一般需求是给你一个数组,调用去重方法,返回数值副本,副本中没有重复元素。一般来说,两个元素通过 === 比较返回 true 的视为相同元素,需要去重,所以,1 和 "1" 是不同的元素,1 和 new Number(1) 是不同…

bootstrap组件之按钮式下拉菜单小

bootstrap组件之按钮式下拉菜单小

下拉菜单,组件,按钮,电脑软件,bootstrap,1、单按钮下拉菜单基础的下拉菜单最外层是.dropdown的div现在只需要改成.btnd-group的div就可以实现单按钮的下拉菜单<div class="btn-group"> <button type="button" class="btn btn-default…

将angular-ui的分页组件封装成指令

将angular-ui的分页组件封装成指令

分页,组件,方法,封装,详解,准备工作:(1)一如既往的我还是使用了requireJS进行js代码的编译(2)必须引入angualrJS , ui-bootstrap-tpls-1.3.2.js , bootstrap.css....首先抛出几个问题:a):何时回用到分页 (当后端返回的数据过多,一页装不满时,我们必…

如何运用Excel来制作付款单

如何运用Excel来制作付款单

付款,电脑软件,Excel,  付款凭单,是一种授权付款的凭证,如果公司需要制作付款凭单,那么应该怎么利用Excel表格来完成呢?以下是小编为您带来的关于Excel制作付款单,希望对您有所帮助。Excel制作付款单1、选中第一行的前八个单元格,开始-对齐方…

excel2010无法合并单元格的解决方

excel2010无法合并单元格的解决方

合并单元格,解决方法,电脑软件,strong,  Excel中遇到单元格无法合并的问题该如何解决呢?下面是小编带来的关于excel2010无法合并单元格的解决方法,希望阅读过后对你有所启发!excel2010无法合并单元格的解决方法无法合并单元格步骤1:打开exc…

powerpoint无法放映下一页怎么办

powerpoint无法放映下一页怎么办

处理方法,下一页,幻灯片,不能播放,电脑软件,  制作完幻灯片在播放时出现问题,不能播放下一页幻灯片,遇到这种奇怪的问题该怎么办呢?有解决的方法吧?下面小编马上就告诉大家ppt不能播放下一页幻灯片的处理方法,希望看完本教程的朋友都能学会…

QQ空间说说新增定时发表功能

QQ空间说说新增定时发表功能

空间,功能,电脑软件,QQ,ldquo,  很多人都喜欢在QQ空间里面发说说,特别是别人生日的时候,但难免可能会忘记发,这时候就有一个定时发表功能,如何定时发表空间说说?下面是小编整理的一些关于QQ空间说说新增定时发表功能的相关资料,供您参考。QQ空…

ES6字符串模板,剩余参数,默认参数功

ES6字符串模板,剩余参数,默认参数功

默认参数,模板,字符串,参数,示例,本文实例讲述了ES6字符串模板,剩余参数,默认参数功能与用法。分享给大家供大家参考,具体如下:这里介绍一下字符串模板以及剩余参数,默认参数的概念以及使用。先来说说字符串模板。字符串模板ES6中允许使用反引号…

javascript深拷贝的原理与实现方法

javascript深拷贝的原理与实现方法

方法,深拷贝,原理,电脑软件,javascript,本文实例讲述了javascript深拷贝的原理与实现方法。分享给大家供大家参考,具体如下:要讲JavaScript的拷贝,就得先讲讲javascript中的值传递和引用传递。javascript中没有一个具体的语法来规定哪些参数是…

excel中分列单元格的教程

excel中分列单元格的教程

教程,单元格,电脑软件,excel,  Excel中的单元格该如何分列呢?下面是由小编分享的excel中分列单元格的教程,以供大家阅读和学习。excel中分列单元格的教程:  分列单元格步骤1:打开需要分列的excel表分列单元格步骤2:选中需要分列的数据,在exc…