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中的排序算法代码
Feb 22 Javascript
什么是DOM(Document Object Model)文档对象模型
Mar 05 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Aug 12 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
jquery 构造函数在表单提交过程中修改数据
May 25 Javascript
15个常用的jquery代码片段
Dec 19 Javascript
AngularJS轻松实现双击排序的功能
Aug 30 Javascript
jQuery层级选择器_动力节点节点Java学院整理
Jul 04 jQuery
Node.js中sequelize时区的配置方法
Dec 10 Javascript
JavaScript的数据类型转换原则(干货)
Mar 15 Javascript
js对象数组和对象的使用实例详解
Aug 27 Javascript
40行代码把Vue3的响应式集成进React做状态管理
May 20 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
解析yii数据库的增删查改
2013/06/20 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
JS hashMap实例详解
2016/05/26 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
React 组件间的通信示例
2018/06/14 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
详解python字节码
2018/02/07 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
TensorFlow Session会话控制&amp;Variable变量详解
2018/07/30 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
python实现最速下降法
2020/03/24 Python
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
六道php面试题附答案
2014/06/05 面试题
四年的个人工作自我评价
2013/12/10 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
小学教师师德反思
2014/02/03 职场文书
授权委托书范本
2014/04/03 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
计生工作先进事迹
2014/08/15 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
Python基础知识之变量的详解
2021/04/14 Python
pytorch 如何使用batch训练lstm网络
2021/05/28 Python