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


Posted in Javascript onMay 29, 2018

我的GitHub前端经验总结,喜欢的话请点star:Thanks.: https://github.com/liangfengbo/frontend-develop

vuejs导航条高亮我的做法:

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

具体代码都在下面了

效果图:

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

html代码

<div class="nav-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 }}
 </p>
 <!-- 判断高亮表 -->
 <p :class="navIndex === index ? 'item-en item-en-active' : 'item-en'">
 {{ item.en }}
 </p>
</li>
</div>

data数据

// 导航条
data() {
 return {
 nav: [
  {title: '首页', en: 'Code', path: '/'},
  {title: '开源', en: 'Source', path: '/source'},
  {title: '关于', en: 'About', path: '/about'},
 ],
 navIndex: 0,
 }
},

methods方法:

/**
 * 路由跳转
 * @param index
 * @param link
*/
routerLink(index, path) {
 // 点击哪个路由就赋值给自定义的下下标
 this.navIndex = index;
 // 路由跳转
 this.$router.push(path)
},

/**
 * 检索当前路径
 * @param path
*/
checkRouterLocal(path) {
 // 查找当前路由下标高亮
 this.navIndex = this.nav.findIndex(item => item.path === path);
}

监听路由变化获取当前路由

watch: {
 "$route"() {
 // 获取当前路径
 let path = this.$route.path;
 // 检索当前路径
 this.checkRouterLocal(path);
 }
},

css样式

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中使用css需要注意的地方小结
Sep 01 Javascript
Google 静态地图API实现代码
Nov 19 Javascript
eval的两组性能测试数据
Aug 17 Javascript
简介AngularJS的视图功能应用
Jun 17 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
Aug 03 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
jquery拖拽效果完整实例(附demo源码下载)
Jan 14 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
Jan 04 Javascript
vue 使用vue-i18n做全局中英文切换的方法
Oct 29 Javascript
JS获取本地地址及天气的方法实例小结
May 10 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 Javascript
解决vue-cli输入命令vue ui没效果的问题
Nov 17 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
May 29 #Javascript
Vue 全局loading组件实例详解
May 29 #Javascript
详解vue-cli 本地开发mock数据使用方法
May 29 #Javascript
详解vue-cli项目中怎么使用mock数据
May 29 #Javascript
js统计页面上每个标签的数量实例代码
May 29 #Javascript
浅谈React的最大亮点之虚拟DOM
May 29 #Javascript
深入理解Vue Computed计算属性原理
May 29 #Javascript
You might like
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
PHP7新增函数
2021/03/09 PHP
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python模块学习 re 正则表达式
2011/05/19 Python
python中字符串内置函数的用法总结
2018/09/13 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
Numpy数组的广播机制的实现
2020/11/03 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
专科毕业生就业推荐信
2013/11/01 职场文书
继电保护工岗位职责
2014/01/05 职场文书
公司授权委托书范本
2014/09/18 职场文书
个人存款证明书
2014/10/18 职场文书
2014年保洁工作总结
2014/11/24 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
python中super()函数的理解与基本使用
2021/08/30 Python
DIY胆机必读:各国电子管评价
2022/04/06 无线电