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 相关文章推荐
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
Dec 01 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
Aug 18 Javascript
jQuery常用选择器详解
Jul 17 jQuery
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
Vue中建立全局引用或者全局命令的方法
Aug 21 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
详解如何使用 vue-cli 开发多页应用
Dec 16 Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
JS工厂模式开发实践案例分析
Oct 17 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
Dec 18 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
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
网上抓的一个特效
2007/05/11 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
python 编码规范整理
2018/05/05 Python
Python学习笔记之For循环用法详解
2019/08/14 Python
flask实现验证码并验证功能
2019/12/05 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
编程实现去掉XML的重复结点
2014/05/28 面试题
远程教育心得体会
2014/01/03 职场文书
小孩百日宴答谢词
2014/01/15 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
论文答辩开场白大全
2015/05/27 职场文书
领导离职感言
2015/08/03 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
如何撰写创业策划书
2019/06/27 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js