vuejs切换导航条高亮路由高亮做法
我的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切换导航条高亮路由高亮做法相关推荐
- 点击导航高亮 html,jQuery实现的导航条点击后高亮显示功能示例
本文实例讲述了jQuery实现的导航条点击后高亮显示功能.分享给大家供大家参考,具体如下: www.jb51.net jQuery导航条点击后高亮显示 #nav li {float: left; wi ...
- vue-11-路由嵌套-参数传递-路由高亮
1, 新建vue-router 项目 vue init webpack vue-router-test 是否创建路由: 是 2, 添加路由列表页 在 component下创建 NavList 页面 & ...
- CSS实现导航条Tab切换的三种方法
前面的话 导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局 根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布局效 ...
- 隐藏导航条HTML,jQuery实现的导航条切换可显示隐藏
用jQuery实现一些导航条切换,显示隐藏,主要运用的技术有slideToggle( ),toggeClass( ),toggle( ): 代码如下: 导航条在项目中的应用 $(function(){ ...
- 用jQuery实现一些导航条切换,显示隐藏
用jQuery实现一些导航条切换,显示隐藏,主要运用的技术有slideToggle( ),toggeClass( ),toggle( ): 源码下载地址 代码如下: <!DOCTYPE html ...
- 小程序的横向二级顶部导航条,可以切换、拖动、二级定位在一级的下面,高度怎么办
项目场景: **做一个小程序的横向二级顶部导航条,可以切换.拖动.二级定位在一级的下面** 问题描述: 我只能设置scroll-view的高度,不然不显示二级菜单 这是html代码 <view ...
- vue 二级路由嵌套和二级路由高亮问题
第一层路由我写在app.vue里面.如图所示: footer.vue: 二级路由是这样: index.js里面的配置: 效果图: 效果出来了,又出现新的问题,就是点击二级路由的时候,默认的二级路由高亮 ...
- CSS3 过渡-盒子切换之鼠标经过背景高亮
CSS3 过渡-盒子切换之鼠标经过背景高亮 源码: <!DOCTYPE html> <html lang="en"><head><meta ...
- 微信小程序中实现点击导航条切换页面(可左右滑动视图)
我录制了个gif如下,黄色部分是不可以滑动的,蓝色部分可以滑动. 代码解说: 首先我在js自定义了navState参数用于判断导航的当前状态, 定义了data-index用于js中动态修改导航的当前状 ...
最新文章
- Pliops XDP(Extreme Data Processor)数据库存储设计的新型加速硬件
- Linux内核实现原子性操作cmpxchg指令的理解
- 洛谷P1474 [USACO 2.3]货币系统 Money Systems [2017年4月计划 动态规划04]
- Fluid 进入 CNCF Sandbox,加速大数据和 AI 应用拥抱云原生
- JS表格分页(封装版)
- 【小白学PyTorch】15.TF2实现一个简单的服装分类任务
- Android之在后台不显示activity方法
- 阿里巴巴云原生混部系统 Koordinator 正式开源
- C语言学习笔记---字符串对比函数strspn()和strcspn()函数
- leetcode题库6-- Z 字形变换
- POI导出Excel2003
- EF中使用数据库的标量值函数
- 清华大学操作系统OS学习(五)——物理内存管理:非连续内存分配
- 墨菲定律吉德林法则吉尔伯特定律沃尔森法则福克兰定律
- 2022网络安全技术自学路线图及职业选择方向
- Android-常用基本控件
- 6000多万铲屎官,捧得出一个国产主粮的春天吗?
- Eureka实战(最通俗易懂)
- java报错java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that
- 智慧交管大屏可视化决策系统