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 相关文章推荐
jquery中this的使用说明
Sep 06 Javascript
JS鼠标事件大全 推荐收藏
Nov 01 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
Javascript中call的两种用法实例
Dec 13 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 Javascript
控制台报错object is not a function的解决方法
Aug 24 Javascript
node.js中的console用法总结
Dec 15 Javascript
javascript编写实用的省市选择器
Feb 12 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
javascript表达式和运算符详解
Feb 07 Javascript
Vue将页面导出为图片或者PDF
Aug 17 Javascript
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
微信小程序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
PHP如何利用P3P实现跨域
2013/08/24 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
php register_shutdown_function函数详解
2017/07/23 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
一套Delphi的笔试题一
2016/02/14 面试题
毕业生就业自荐信
2013/12/04 职场文书
网络维护中文求职信
2014/01/03 职场文书
诚信考试标语
2014/06/24 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
幼儿园教师求职信
2015/03/20 职场文书
家长意见书
2015/06/04 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python