微信小程序 下拉菜单

看下实现效果图:
实例:
//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
相关文章:
外贸公司网站制作哪家好,maersk船公司官网?
太原网站制作公司有哪些,网约车营运证查询官网?
如何解决VPS建站LNMP环境配置常见问题?
如何用腾讯建站主机快速创建免费网站?
如何通过西部建站助手安装IIS服务器?
免费视频制作网站,更新又快又好的免费电影网站?
简单实现Android验证码
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
如何通过VPS建站无需域名直接访问?
常州自助建站工具推荐:低成本搭建与模板选择技巧
如何高效搭建专业期货交易平台网站?
网页设计与网站制作内容,怎样注册网站?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
定制建站流程步骤详解:一站式方案设计与开发指南
建站主机服务器选型指南与性能优化方案解析
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
建站主机功能解析:服务器选择与快速搭建指南
家庭服务器如何搭建个人网站?
网站制作难吗安全吗,做一个网站需要多久时间?
如何快速生成专业多端适配建站电话?
定制建站方案优化指南:企业官网开发与建站费用解析
官网建站费用明细查询_企业建站套餐价格及收费标准指南
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
建站之星备案流程有哪些注意事项?
如何快速完成中国万网建站详细流程?
香港网站服务器数量如何影响SEO优化效果?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
平台云上自主建站:模板化设计与智能工具打造高效网站
如何快速搭建虚拟主机网站?新手必看指南
已有域名和空间如何搭建网站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
香港服务器如何优化才能显著提升网站加载速度?
如何通过商城自助建站源码实现零基础高效建站?
如何用IIS7快速搭建并优化网站站点?
网站制作需要会哪些技术,建立一个网站要花费多少?
c# 服务器GC和工作站GC的区别和设置
公司网站制作价格怎么算,公司办个官网需要多少钱?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
详解jQuery停止动画——stop()方法的使用
如何在阿里云完成域名注册与建站?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
如何在腾讯云服务器上快速搭建个人网站?
网站制作报价单模板图片,小松挖机官方网站报价?
济南网站制作的价格,历城一职专官方网站?
制作网站的模板软件,网站怎么建设?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
C#如何在一个XML文件中查找并替换文本内容
*请认真填写需求信息,我们会在24小时内与您取得联系。