vuejs 切换导航条高亮(路由菜单高亮)的方法示例

前端之家收集整理的这篇文章主要介绍了vuejs 切换导航条高亮(路由菜单高亮)的方法示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的GitHub前端经验总结,喜欢的话请点star:Thanks.: nofollow" target="_blank" href="https://github.com/liangfengbo/frontend-develop">https://github.com/liangfengbo/frontend-develop

vuejs导航条高亮我的做法:

  1. 用一个数组存导航条,用v-for循环它,这样可以减少代码,二可以使用它的下标来判断高亮,三还可以获取后端的导航信息来遍历
  2. 重点是在:routerLink(index,path)函数,传入当前点击的下标,自定义一个下标,判断是否相等就用三元符号判断多给一个高亮样式
  3. 如何解决刷新就不高亮或第一个高亮了,很简单,监听一下当前路由在判断就好了

具体代码都在下面了

效果图:

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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的Vue相关文章