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 相关文章推荐
MooTools 1.2中的Drag.Move来实现拖放
Sep 15 Javascript
javascript json2 使用方法
Mar 16 Javascript
JS动态添加option和删除option(附实例代码)
Apr 01 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
JavaScript弹出对话框的三种方式
Mar 23 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
Apr 20 Javascript
weex里Vuex state使用storage持久化详解
Sep 09 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
Dec 19 jQuery
jQuery实现的两种简单弹窗效果示例
Apr 18 jQuery
JS中数据结构之栈
Jan 01 Javascript
JavaScript单线程和任务队列原理解析
Feb 04 Javascript
JavaScript 数组去重详解
Sep 15 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中str_replace函数使用小结
2008/10/11 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
浅析php原型模式
2014/11/25 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
php PDO异常处理详解
2016/11/20 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
2016/11/16 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
python实现apahce网站日志分析示例
2014/04/02 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
小学六年级学生评语
2014/04/22 职场文书
环保建议书400字
2014/05/14 职场文书
读书笔记格式
2015/07/02 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL