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打包类,基本可以实现所有的滚动效果,太强了
Dec 08 Javascript
jquery插件 cluetip 关键词注释
Jan 12 Javascript
jQuery maxlength文本字数限制插件
Apr 16 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
了不起的node.js读书笔记之node.js中的特性
Dec 22 Javascript
JavaScript中的substr()方法使用详解
Jun 06 Javascript
JavaScript中的small()方法使用详解
Jun 08 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
Javascript同时声明一连串(多个)变量的方法
Jan 23 Javascript
Node.js使用supervisor进行开发中调试的方法
Mar 26 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 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程序中防止盗链
2008/04/09 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
设置php页面编码的两种方法示例介绍
2014/03/03 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
js实现表格筛选功能
2017/01/18 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
关于Django外键赋值问题详解
2017/08/13 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python骚操作之动态定义函数
2019/03/26 Python
下载官网python并安装的步骤详解
2019/10/12 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
python中entry用法讲解
2020/12/04 Python
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
欧克利英国官网:Oakley英国
2019/08/24 全球购物
法务专员岗位职责
2014/01/02 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
医德医风自我评价2015
2015/03/03 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
CSS基础详解
2021/10/16 HTML / CSS
手写实现JS中的new
2021/11/07 Javascript