效果图如下所示:
<template>
<div class="asideBox">
<aside>
<ul class="asideMenu">
<li v-for="(item,index) in menuList">
<div class="oneMenu" @click="showToggle(item,index)">
<img v-bind:src="item.imgUrl" />
<span>{{item.name}}</span>
</div>
<ul v-show="item.isSubShow">
<li v-for="subItem in item.subItems">
<div class="oneMenuChild">{{subItem.name}}</div>
</li>
</ul>
</li>
</ul>
</aside>
</div>
</template>
export default {
data(){
return{
menuList:[
{
name:'字符录入',
imgUrl:require('../assets/images/icon-character.png'),
isSubShow:false,
subItems:[
{
name:'字符录入'
},
{
name:'白话文录入'
},
{
name:'文言文录入'
},
{
name:'小写数字录入'
}
]
},
{
name:'票据数据录入',
imgUrl:require('../assets/images/icon-bill.png'),
isSubShow:false,
subItems:[
{
name:'票据录入'
},
{
name:'翻打传票'
},
]
},
{
name:'交易码录入',
imgUrl:require('../assets/images/icon-transaction.png'),
isSubShow:false,
subItems:[
{
name:'交易码录入'
},
{
name:'交易名称录入'
},
]
},
{
name:'操作码录入',
imgUrl:require('../assets/images/icon-operation.png'),
isSubShow:false,
subItems:[
{
name:'操作码录入'
},
{
name:'操作名称录入'
},
]
},
{
name:'票据学习',
imgUrl:require('../assets/images/icon-billearn.png'),
isSubShow:false,
subItems:[
]
},
{
name:'内部凭证学习',
imgUrl:require('../assets/images/icon-voucher.png'),
isSubShow:false,
subItems:[
]
},
{
name:'现金管理学习',
imgUrl:require('../assets/images/icon-cash.png'),
isSubShow:false,
subItems:[
]
},
]
}
},
methods:{
// 点击展开折叠菜单事件
showToggle:function(item,ind){
this.menuList.forEach(i => {
// 判断如果数据中的menuList[i]的show属性不等于当前数据的isSubShow属性那么menuList[i]等于false
if (i.isSubShow !== this.menuList[ind].isSubShow) {
i.isSubShow = false;
}
});
item.isSubShow = !item.isSubShow;
console.log(item.name)
},
}
}
<style lang="scss" scoped>
$menuBackColor:#f1f1f1;
$menuListH2:#8fbfef;
.asideBox{
height: 100%;
width: 300px;
aside{
background: $menuBackColor;
height: 100%;
.asideMenu{
.oneMenu{
height: 50px;
line-height: 50px;
font-size: 18px;
font-weight: normal;
color: #ffffff;
background: $menuListH2 url("../assets/images/icon-open.png") no-repeat 280px center;
border-bottom: 1px solid #669cd9;
img{
width: 20px;
height: 20px;
margin: 15px 16px 15px 20px;
vertical-align: top;
}
}
.oneMenuChild{
padding: 0 20px 0 60px;
height: 40px;
line-height: 40px;
background: $menuBackColor;
border-bottom: 1px solid #ffffff;
color: #454343;
font-size: 18px;
}
}
}
}
</style>
总结
以上所述是小编给大家介绍的Vue实现侧边菜单栏手风琴效果实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对亿速云网站的支持!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。