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显示选择目录对话框的代码
Nov 10 Javascript
js 对象是否存在判断
Jul 15 Javascript
js兼容火狐获取图片宽和高的方法
May 21 Javascript
jQuery控制控件文本的长度的操作方法
Dec 05 Javascript
面试常见的js算法题
Mar 23 Javascript
node中IO以及定时器优先级详解
May 10 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
Jul 24 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 Javascript
字节飞书面试promise.all实现示例
Jun 16 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 str_replace的替换漏洞
2008/03/15 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
php+mysql实现无限级分类
2015/11/11 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
python的id()函数介绍
2013/02/10 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
Python3 元组tuple入门基础
2020/02/09 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
应届毕业生自我鉴定范文
2013/12/27 职场文书
2014年元旦感言
2014/03/06 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
员工教育培训协议书
2014/09/27 职场文书
英语教师个人工作总结
2015/02/09 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS