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 相关文章推荐
JavaScrip单线程引擎工作原理分析
Sep 04 Javascript
Javascript selection的兼容性写法介绍
Dec 20 Javascript
Jquery倒计时源码分享
May 16 Javascript
javascript对中文按照拼音排序代码
Aug 20 Javascript
jquery带下拉菜单和焦点图代码分享
Aug 24 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
jQuery实现鼠标经过显示动画边框特效
Mar 24 jQuery
ionic3+Angular4实现接口请求及本地json文件读取示例
Oct 11 Javascript
JS二分查找算法详解
Nov 01 Javascript
详解webpack4多入口、多页面项目构建案例
May 25 Javascript
webpack打包html里面img后src为“[object Module]”问题
Dec 22 Javascript
javascript实现扫雷简易版
Aug 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往windows中添加用户
2006/12/06 PHP
php 文件上传代码(限制jpg文件)
2010/01/05 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
Angular2库初探
2017/03/01 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
JS实现图片旋转动画效果封装与使用示例
2018/07/09 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Python随手笔记之标准类型内建函数
2015/12/02 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
python实现的发邮件功能示例
2019/09/11 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
幼儿如何来做好自我评价
2013/11/05 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
国际金融专业自荐信
2014/07/05 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
Python四款GUI图形界面库介绍
2022/06/05 Python
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技