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 相关文章推荐
jquery text,radio,checkbox,select操作实现代码
Jul 09 Javascript
javascript使用activex控件的代码
Jan 27 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
Jun 16 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
javascript判断并获取注册表中可信任站点的方法
Jun 01 Javascript
javascript学习总结之js使用技巧
Sep 02 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
详解AngularJS实现表单验证
Dec 10 Javascript
JavaScript数据类型的存储方法详解
Aug 25 Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
Dec 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数组函数序列之array_pop() - 删除数组中的最后一个元素
2011/11/07 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
vuex 的简单使用
2018/03/22 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
谈谈Python中的while循环语句
2019/03/10 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
Python实现时间序列可视化的方法
2019/08/06 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
工商管理应届生求职信
2013/10/07 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
关于美容院的活动方案
2014/08/14 职场文书
信访维稳工作汇报
2014/10/27 职场文书
2014年稽查工作总结
2014/12/20 职场文书
MySQL锁机制
2021/04/05 MySQL
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
在python中读取和写入CSV文件详情
2022/06/28 Python