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 相关文章推荐
js 判断checkbox是否选中的实现代码
Nov 23 Javascript
ExtJS的拖拽效果示例
Dec 09 Javascript
Jquery中扩展方法extend使用技巧
Aug 24 Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 Javascript
详谈JavaScript内存泄漏
Nov 14 Javascript
Jquery实现仿腾讯微博发表广播
Nov 17 Javascript
angularjs创建弹出框实现拖动效果
Aug 25 Javascript
ES6中如何使用Set和WeakSet
Mar 10 Javascript
js中json处理总结之JSON.parse
Oct 14 Javascript
简单理解vue中Props属性
Oct 27 Javascript
小程序实现日历左右滑动效果
Oct 21 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
详解json在php中的应用
2018/09/30 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
jquery 分页控件实现代码
2009/11/30 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
Python通过正则表达式选取callback的方法
2015/07/18 Python
Python 的内置字符串方法小结
2016/03/15 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
如何利用python查找电脑文件
2018/04/27 Python
python实现自动登录
2018/09/17 Python
python plotly画柱状图代码实例
2019/12/13 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
C++面试题:关于链表和指针
2013/06/05 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
单位门卫岗位职责
2013/12/20 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
城管大队整治方案
2014/05/06 职场文书
2014院党委领导班子对照检查材料思想汇报
2014/09/24 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
浅谈怎么给Python添加类型标注
2021/06/08 Python