Vue 菜单栏点击切换单个class(高亮)的方法


Posted in Javascript onAugust 22, 2018

步骤:

遍历对象(goods)获取菜单栏每一项的对象(item)和下标(index)

添加点击事件toggle(),传入下标参数:@click="fn1();fn2()"

动态切换classname::class="{'active':index ==checkindex }"> (class赋予对应下标值的DOM)

ps:该方法直接切换class,不需要手动添加清除其他非动态DOM的class

html

<ul>
   <li v-for="(item,index) in goods" class="menu-item" @click="toggle(index);scrollToFoods(index)"
   :class="{'active':index ==checkindex }">
   </li>
  </ul>

script

export default {
 data () {
  return {
  checkindex: 0 // 初始化第一个栏块高亮
  }
 },
 methods: {
  toggle (index) {
  this.checkindex = index
  }

css

.active {
 background: white;
 }

效果图展示:

Vue 菜单栏点击切换单个class(高亮)的方法

Vue 菜单栏点击切换单个class(高亮)的方法

拓展知识:浅谈element-ui下导航高亮犯过的错

同事搭建的vue+elementui项目出了个bug,elementui导航高亮一直出错。调试了3个多小时,来问我,结果悲剧地加班了。

最后实在不耐烦了,导航这块放弃使用elementui组件,直接自己来写了。今天有空,实在不服气,自己写了一个。结果直接就过了。

贴上代码:

<template>
 <el-menu
 :default-active="$route.path"
 background-color="#383838"
 text-color="#ccc"
 active-text-color="#fff000" router>
 <el-menu-item index="/dashboard">
  <span slot="title">总览</span>
 </el-menu-item>
 <el-submenu index="2">
  <template slot="title">导航1</template>
  <el-menu-item index="/nav1/index">导航11</el-menu-item>
  <el-submenu index="2-2">
  <template slot="title">导航12</template>
  <el-menu-item index="/nav2/nav1">导航121</el-menu-item>
  <el-menu-item index="/nav2/nav2">导航122</el-menu-item>
  </el-submenu>
 </el-submenu>
 </el-menu>
</template>

后来对比了下细节,发现自己是被同事带坑了:总结当时犯的错误(纠结的地方)

:default-active="$route.path"

这里定义当前高亮。举例:当前页面是总览,通过打印,得知$route.path的值是 '/dashboard' 而不是 'dashboard'。前者是$route.path,后者是$route.name。后续会用到。

router>

这里没什么好说的,直接router就行了。

<el-menu-item index="/dashboard">

这里就要根据前面的$route.path/$route.name来输入值了。保证这三点基本无误导航高亮基本就没问题了。

至于其他花式写法后面会继续研究。

以上这篇Vue 菜单栏点击切换单个class(高亮)的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript----文件操作
Jan 18 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
Mar 20 Javascript
JsRender实用入门教程
Oct 31 Javascript
Javascript中判断一个值是否为undefined的方法详解
Sep 28 Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
五步轻松实现JavaScript HTML时钟效果
Mar 25 Javascript
浅谈vue.use()方法从源码到使用
May 12 Javascript
javascript实现简单打字游戏
Oct 29 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
小程序自动化测试的示例代码
Aug 11 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 #Javascript
Vue2.0点击切换类名改变样式的方法
Aug 22 #Javascript
vuejs选中当前样式active的实例
Aug 22 #Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 #Javascript
基于vue中对鼠标划过事件的处理方式详解
Aug 22 #Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
Aug 22 #Javascript
JS封装的模仿qq右下角消息弹窗功能示例
Aug 22 #Javascript
You might like
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
php的4种常见运行方式
2015/03/20 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
jquery foreach使用示例
2013/09/12 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
2016/08/02 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
python实现交并比IOU教程
2020/04/16 Python
Django多数据库联用实现方法解析
2020/11/12 Python
html5本地存储_动力节点Java学院整理
2017/07/12 HTML / CSS
【HTML5】3D模型--百行代码实现旋转立体魔方实例
2016/12/16 HTML / CSS
火山动力Java笔试题
2014/06/26 面试题
12月小学生校园广播稿
2014/02/04 职场文书
走群众路线剖析材料
2014/10/09 职场文书
十七岁的单车观后感
2015/06/12 职场文书
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL
Linux服务器离线安装 nginx的详细步骤
2022/06/16 Servers