
catetop.js
// pages/catetop/catetop.js
function initSubMenuDisplay() {
return ['show', 'hidden', 'hidden'];
}
Page({
/**
* 页面的初始数据
*/
data: {
subMenuDispaly: initSubMenuDisplay(),
flag: 0
},
tapMainMenu: function(e) {
console.log(e);
var index = parseInt(e.currentTarget.dataset.index);
console.log(index);
var newSubMenuDisplay = initSubMenuDisplay();
if (this.data.subMenuDispaly[index] == 'hidden') {
newSubMenuDisplay[index] = 'show';
} else {
newSubMenuDisplay[index] = 'hidden';
index = -1;
}
this.setData({
subMenuDispaly: newSubMenuDisplay,
flag: index
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
}
})
catetop. wxml
<!--pages/catetop/catetop.wxml-->
<view class="content">
<dl class="menu">
<dt data-index="0" class="{{flag==0?'select':'normal'}}" bindtap="tapMainMenu">菜单0</dt>
<dd class="{{subMenuDispaly[0]}}">
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
<li>e</li>
<li>f</li>
</ul>
</dd>
<dt data-index="1" class="{{flag==1?'select':'normal'}}" bindtap="tapMainMenu">菜单1</dt>
<dd class="{{subMenuDispaly[1]}}">
<ul>
<li>11</li>
<li>22</li>
<li>33</li>
<li>44</li>
<li>55</li>
<li>66</li>
</ul>
</dd>
<dt data-index="2" class="{{flag==2?'select':'normal'}}" bindtap="tapMainMenu">菜单2</dt>
<dd class="{{subMenuDispaly[2]}}">
<ul>
<li>aa</li>
<li>bb</li>
<li>cc</li>
<li>dd</li>
<li>ee</li>
<li>ff</li>
</ul>
</dd>
</dl>
</view>
catetop.wxss
/* pages/catetop/catetop.wxss */
.content {
width: 100%;
}
.menu{
display: block;
height: 38px;
}
.select{
font-size: 13px;
float: left;
width: 24.7%;
height: 38px;
border-right: 1px solid #f2f2f2;
border-bottom: 2px solid #ff0000;
text-align: center;
line-height: 38px;
background-color: #FAFAFA;
color: #666666;
}
.normal{
font-size: 13px;
float: left;
width: 24.7%;
height: 38px;
border-right: 1px solid #f2f2f2;
border-bottom: 1px solid #f2f2f2;
text-align: center;
line-height: 38px;
background-color: #FAFAFA;
color: #666666;
}
.menu dd{
position: absolute;
width: 100%;
top:40px;
left: 0;
z-index: 999;
background-color: #FAFAFA;
}
.menu li{
font-size: 14px;
line-height: 34px;
color: #666666;
display: block;
padding-left: 30px;
border-bottom:1px solid #f2f2f2;
}
.show{
display: block;
}
.hidden{
display: none;
}