微信小程序 下拉菜单

看下实现效果图:
实例:
//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()
//});
// 当前二级菜单的标识
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
});
}
/// <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)
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 微信小程序
# 下拉菜单
# 小程序
# 微信小程序复选框组件使用详解
# 微信小程序自定义复选框
# 微信小程序复选框实现多选一功能过程解析
# 微信小程序获取复选框全选反选选中的值(实例代码)
# 微信小程序 自定义复选框实现代码实例
# 微信小程序实现复选框效果
# 微信公众号菜单配置微信小程序实例详解
# 微信小程序实现单列下拉菜单效果
# 微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
# 微信小程序实现多层级复选框菜单
# 希望能
# 谢谢大家
# absolute
# dd
# index
# top
# margin
# line
# center
# align
# text
# background
# a5a5a
# color
# highlight
# 高亮
# c23d
# visible
# visibility
# show
相关文章:
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
如何在云主机快速搭建网站站点?
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何用wdcp快速搭建高效网站?
如何自定义建站之星网站的导航菜单样式?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
linux top下的 minerd 木马清除方法
高防服务器租用如何选择配置与防御等级?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
如何配置WinSCP新建站点的密钥验证步骤?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
制作证书网站有哪些,全国城建培训中心证书查询官网?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
建站之星安装路径如何正确选择及配置?
如何确认建站备案号应放置的具体位置?
如何在腾讯云服务器快速搭建个人网站?
建站ABC备案流程中有哪些关键注意事项?
北京企业网站设计制作公司,北京铁路集团官方网站?
三星网站视频制作教程下载,三星w23网页如何全屏?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
西安大型网站制作公司,西安招聘网站最好的是哪个?
建站之星后台管理系统如何操作?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
如何高效生成建站之星成品网站源码?
网站制作说明怎么写,简述网页设计的流程并说明原因?
南宁网站建设制作定制,南宁网站建设可以定制吗?
定制建站策划方案_专业建站与网站建设方案一站式指南
如何快速配置高效服务器建站软件?
c++ stringstream用法详解_c++字符串与数字转换利器
如何确保西部建站助手FTP传输的安全性?
如何构建满足综合性能需求的优质建站方案?
简单实现Android文件上传
建站主机无法访问?如何排查域名与服务器问题
网站制作话术技巧,网站推广做的好怎么话术?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
c# Task.ConfigureAwait(true) 在什么场景下是必须的
如何在IIS7上新建站点并设置安全权限?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
如何快速完成中国万网建站详细流程?
大连网站制作公司哪家好一点,大连买房网站哪个好?
建站主机选购指南与交易推荐:核心配置解析
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何在建站之星绑定自定义域名?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
宿州网站制作公司兴策,安徽省低保查询网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
建站之星×万网:智能建站系统+自助建站平台一键生成
如何在橙子建站上传落地页?操作指南详解
如何快速生成高效建站系统源代码?
*请认真填写需求信息,我们会在24小时内与您取得联系。