全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

微信小程序 下拉菜单简单实例

微信小程序 下拉菜单简单实例

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 

//数据源 
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 = [] 
var initAnimationData = [] 
 
/// 初始化DropDownMenu 
loadDropDownMenu() 
 
that.setData({ 
  reportData: ReportDataSync,//菜单数据 
  subMenuDisplay: initSubMenuDisplay, //一级 
  subMenuHighLight: initSubMenuHighLight, //二级 
   animationData: initAnimationData //动画 
}) 
 
 
 
//一级菜单点击 
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 
  }) 
    this.animation(index) 
}, 
 
//二级菜单点击 
tapSubMenu: function (e) { 
  //隐藏所有一级菜单 
  //this.setData({ 
  //subMenuDisplay: initSubMenuDisplay() 
  //}); 
  // 当前二级菜单的标识 
  var indexArray = e.currentTarget.dataset.index.split('-'); 
   // 删除所在二级菜单样式 
  for (var i = 0; i < initSubMenuHighLight.length; i++) { 
    if (indexArray[0] == i) { 
      for (var j = 0; j < initSubMenuHighLight[i].length; j++) { 
        initSubMenuHighLight[i][j] = ''; 
      } 
    } 
  } 
  //给当前二级菜单添加样式 
  initSubMenuHighLight[indexArray[0]][indexArray[1]] = 'highlight'; 
  //刷新样式 
  this.setData({ 
    subMenuHighLight: initSubMenuHighLight 
  }); 
   // 设置动画 
   this.animation(indexArray[0]); 
}, 
 
//菜单动画 
animation: function (index) { 
    // 定义一个动画 
   var animation = wx.createAnimation({ 
     duration: 400, 
    timingFunction: 'linear', 
  }) 
  // 是显示还是隐藏 
  var flag = this.data.subMenuDisplay[index] == 'show' ? 1 : -1; 
  // 使之Y轴平移 
  animation.translateY(flag * ((initSubMenuHighLight[index].length + 1) * 38)).step(); 
  // 导出到数据,绑定给view属性 
   var animationStr = animation.export(); 
  // 原来的数据 
   var animationData = this.data.animationData; 
  animationData[index] = animationStr; 
  this.setData({ 
    animationData: animationData 
  }); 
} 
 
 
/// <summary> 
/// 初始化DropDownMenu 
/// 1.一级目录 initSubMenuDisplay :['hidden'] 
/// 2.二级目录 initSubMenuHighLight :[['',''],['','','','']]] 
/// </summary> 
function loadDropDownMenu() { 
  for (var i = 0; i < ReportDataSync.length; i++) { 
    //一级目录 
    initSubMenuDisplay.push('hidden') 
    //二级目录 
    var report = [] 
    for (var j = 0; j < ReportDataSync[i].chilItem.length; j++) { 
      report.push(['']) 
    } 
    initSubMenuHighLight.push(report) 
       //动画 
    initAnimationData.push("") 
  } 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # 下拉菜单  # 小程序  # 下拉菜单实例  # 微信公众号菜单配置微信小程序实例详解  # 微信小程序实现单列下拉菜单效果  # 微信小程序实现的点击按钮 弹出底部上拉菜单功能示例  # 微信小程序 下拉菜单的实现  # 微信小程序实现下拉菜单切换效果  # 微信小程序实现弹出菜单功能  # 微信小程序 特效菜单抽屉效果实例代码  # 微信小程序 仿美团分类菜单 swiper分类菜单  # 微信小程序左滑动显示菜单功能的实现  # 微信小程序实现收缩式菜单  # 希望能  # 谢谢大家  # 使之  # 绑定  # 导出到  # margin  # center  # top  # li  # a5a5a  # line  # color  # background  # absolute  # index  # dd  # visible  # hidden  # show  # visibility 


相关文章: 营销式网站制作方案,销售哪个网站招聘效果最好?  建站之星北京办公室:智能建站系统与小程序生成方案解析  常州企业网站制作公司,全国继续教育网怎么登录?  建站VPS配置与SEO优化指南:关键词排名提升策略  建站之星安装步骤有哪些常见问题?  家具网站制作软件,家具厂怎么跑业务?  个人网站制作流程图片大全,个人网站如何注销?  建站之星2.7模板:企业网站建设与h5定制设计专题  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何用PHP工具快速搭建高效网站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何用虚拟主机快速搭建网站?详细步骤解析  *服务器网站为何频现安全漏洞?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何在云服务器上快速搭建个人网站?  高性价比服务器租赁——企业级配置与24小时运维服务  如何在云主机上快速搭建多站点网站?  PHP正则匹配日期和时间(时间戳转换)的实例代码  c# Task.ConfigureAwait(true) 在什么场景下是必须的  建站之星收费标准详解:套餐费用及年费价格表一览  如何批量查询域名的建站时间记录?  香港服务器租用费用高吗?如何避免常见误区?  如何快速登录WAP自助建站平台?  建站之星微信建站一键生成小程序+多端营销系统  建站之星2.7模板快速切换与批量管理功能操作指南  建站主机空间推荐 高性价比配置与快速部署方案解析  C#如何使用XPathNavigator高效查询XML  小建面朝正北,A点实际方位是否存在偏差?  如何解决VPS建站LNMP环境配置常见问题?  设计网站制作公司有哪些,制作网页教程?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  建站之星展会模版如何一键下载生成?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  高防服务器:AI智能防御DDoS攻击与数据安全保障  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  ,交易猫的商品怎么发布到网站上去?  如何快速搭建高效WAP手机网站吸引移动用户?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何选择美橙互联多站合一建站方案?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  小程序网站制作需要准备什么资料,如何制作小程序?  建站之星下载版如何获取与安装?  Swift开发中switch语句值绑定模式  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何使用Golang安装API文档生成工具_快速生成接口文档  如何零基础开发自助建站系统?完整教程解析  如何在服务器上三步完成建站并提升流量?  TestNG的testng.xml配置文件怎么写 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。