我的GitHub前端经验总结,喜欢的话请点star✨✨Thanks.:https://github.com/liangfengbo/frontend-develop

vuejs导航条高亮我的做法:

  • 用一个数组存导航条,用v-for循环它,这样可以减少代码,二可以使用它的下标来判断高亮,三还可以获取后端的导航信息来遍历
  • 重点是在:routerLink(index, path)函数,传入当前点击的下标,自定义一个下标,判断是否相等就用三元符号判断多给一个高亮样式
  • 如何解决刷新就不高亮或第一个高亮了,很简单,监听一下当前路由在判断就好了
  • 具体代码都在下面了

效果图:

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;
}

vuejs切换导航条高亮路由高亮做法相关推荐

  1. 点击导航高亮 html,jQuery实现的导航条点击后高亮显示功能示例

    本文实例讲述了jQuery实现的导航条点击后高亮显示功能.分享给大家供大家参考,具体如下: www.jb51.net jQuery导航条点击后高亮显示 #nav li {float: left; wi ...

  2. vue-11-路由嵌套-参数传递-路由高亮

    1, 新建vue-router 项目 vue init webpack vue-router-test 是否创建路由: 是 2, 添加路由列表页 在 component下创建 NavList 页面 & ...

  3. CSS实现导航条Tab切换的三种方法

    前面的话 导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局   根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布局效 ...

  4. 隐藏导航条HTML,jQuery实现的导航条切换可显示隐藏

    用jQuery实现一些导航条切换,显示隐藏,主要运用的技术有slideToggle( ),toggeClass( ),toggle( ): 代码如下: 导航条在项目中的应用 $(function(){ ...

  5. 用jQuery实现一些导航条切换,显示隐藏

    用jQuery实现一些导航条切换,显示隐藏,主要运用的技术有slideToggle( ),toggeClass( ),toggle( ): 源码下载地址 代码如下: <!DOCTYPE html ...

  6. 小程序的横向二级顶部导航条,可以切换、拖动、二级定位在一级的下面,高度怎么办

    项目场景: **做一个小程序的横向二级顶部导航条,可以切换.拖动.二级定位在一级的下面** 问题描述: 我只能设置scroll-view的高度,不然不显示二级菜单 这是html代码 <view ...

  7. vue 二级路由嵌套和二级路由高亮问题

    第一层路由我写在app.vue里面.如图所示: footer.vue: 二级路由是这样: index.js里面的配置: 效果图: 效果出来了,又出现新的问题,就是点击二级路由的时候,默认的二级路由高亮 ...

  8. CSS3 过渡-盒子切换之鼠标经过背景高亮

    CSS3 过渡-盒子切换之鼠标经过背景高亮 源码: <!DOCTYPE html> <html lang="en"><head><meta ...

  9. 微信小程序中实现点击导航条切换页面(可左右滑动视图)

    我录制了个gif如下,黄色部分是不可以滑动的,蓝色部分可以滑动. 代码解说: 首先我在js自定义了navState参数用于判断导航的当前状态, 定义了data-index用于js中动态修改导航的当前状 ...

最新文章

  1. Pliops XDP(Extreme Data Processor)数据库存储设计的新型加速硬件
  2. Linux内核实现原子性操作cmpxchg指令的理解
  3. 洛谷P1474 [USACO 2.3]货币系统 Money Systems [2017年4月计划 动态规划04]
  4. Fluid 进入 CNCF Sandbox,加速大数据和 AI 应用拥抱云原生
  5. JS表格分页(封装版)
  6. 【小白学PyTorch】15.TF2实现一个简单的服装分类任务
  7. Android之在后台不显示activity方法
  8. 阿里巴巴云原生混部系统 Koordinator 正式开源
  9. C语言学习笔记---字符串对比函数strspn()和strcspn()函数
  10. leetcode题库6-- Z 字形变换
  11. POI导出Excel2003
  12. EF中使用数据库的标量值函数
  13. 清华大学操作系统OS学习(五)——物理内存管理:非连续内存分配
  14. 墨菲定律吉德林法则吉尔伯特定律沃尔森法则福克兰定律
  15. 2022网络安全技术自学路线图及职业选择方向
  16. Android-常用基本控件
  17. 6000多万铲屎官,捧得出一个国产主粮的春天吗?
  18. Eureka实战(最通俗易懂)
  19. java报错java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that
  20. 智慧交管大屏可视化决策系统

热门文章

  1. Java中的Collections类– java.util.Collections
  2. 析构函数c+_了解C ++中的析构函数
  3. java版b2b2c社交电商spring cloud分布式微服务(十)高可用的服务注册中心
  4. 使用HTML5和CSS3碎语
  5. Vue登录注册,并保持登录状态 1
  6. Jenkins部署java项目实例
  7. Pointer 指针
  8. Nginx作为web服务器的安装配置
  9. 实时统计分析技术浅谈
  10. 程序员面试金典——18.7最长合成字符串