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,水平有待提高
Jan 31 Javascript
javascript hashtable实现代码
Oct 13 Javascript
利用js实现选项卡的特别效果的实例
Mar 03 Javascript
图片上传插件jquery.uploadify详解
Nov 15 Javascript
jQuery的缓存机制浅析
Jun 07 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
Dec 07 Javascript
干货分享:让你分分钟学会javascript闭包
Dec 25 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
Oct 12 Javascript
通过 JS 判断页面是否有滚动条的实现方法
Apr 05 Javascript
React.js组件实现拖拽排序组件功能过程解析
Apr 27 Javascript
详解vue路由
Aug 05 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
mysql 字段类型说明
2007/04/27 PHP
PHP 字符串 小常识
2009/06/05 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php导出生成word的方法
2015/12/25 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
python实现多线程抓取知乎用户
2016/12/12 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python实现感知器算法(批处理)
2019/01/18 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
百度软件工程师职位
2013/02/14 面试题
挂职锻炼工作总结2015
2015/05/28 职场文书
订货会主持词
2015/07/01 职场文书
环保建议书作文500字
2015/09/14 职场文书
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js