vuejs 切换导航条高亮(路由菜单高亮)的方法示例
前端之家收集整理的这篇文章主要介绍了
vuejs 切换导航条高亮(路由菜单高亮)的方法示例,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的GitHub前端经验总结,喜欢的话请点star:Thanks.: nofollow" target="_blank" href="https://github.com/liangfengbo/frontend-develop">https://github.com/liangfengbo/frontend-develop
vuejs导航条高亮我的做法:
- 用一个数组存导航条,用v-for循环它,这样可以减少代码,二可以使用它的下标来判断高亮,三还可以获取后端的导航信息来遍历
- 重点是在:routerLink(index,path)函数,传入当前点击的下标,自定义一个下标,判断是否相等就用三元符号判断多给一个高亮样式
- 如何解决刷新就不高亮或第一个高亮了,很简单,监听一下当前路由在判断就好了
具体代码都在下面了
效果图:
HTML代码
Box">
<li class="nav-item"
v-for="(item,index) in nav"
@click="routerLink(index,item.path)"
:key="index">
<p :class=" navIndex === index ? 'item-cn item-cn-active' : 'item-cn'">
{{ item.title }}
data数据
首页',en: 'Code',path: '/'},{title: '开源',en: 'Source',path: '/source'},{title: '关于',en: 'About',path: '/about'},],navIndex: 0,}
},
methods方法:
item.path === path);
}
监听路由变化获取当前路由
获取当前路径
let path = this.$route.path;
// 检索当前路径
this.checkRouterLocal(path);
}
},
css样式
Box {
display: flex;
}
.nav-item {
text-align: center;
padding: 0 32px;
position: relative;
display: inline-block;
font-size: 14px;
line-height: 25px;
}
/导航普通状态/
.item-cn {
color: #1c2438;
font-weight: 800;
}
/导航普通状态/
.item-en {
color: #666;
font-size: 12px;
}
/导航高亮/
.item-cn-active {
color: #2d8cf0;
}
/导航高亮/
.item-en-active {
color: #5cadff;
}
.nav-item:hover .item-cn {
color: #2d8cf0;
}
.nav-item:hover .item-en {
color: #5cadff;
}
.nav-item:after {
position: absolute;
right: 0;
top: 20px;
content: '';
width: 1px;
height: 16px;
background-color: #f8f8f8;
}
.nav-item:after:last-child {
width: 0;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。