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 .ajax 在IE下卡死问题的解决方法
Oct 26 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
jquery获取css的color值返回RGB的方法
Dec 18 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
BootStrap 表单控件之单选按钮水平排列
May 23 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
ECMAscript 变量作用域总结概括
Aug 18 Javascript
javascript 开发之网页兼容各种浏览器
Sep 28 Javascript
webpack源码之loader机制详解
Apr 06 Javascript
解析vue data不可以使用箭头函数问题
Jul 03 Javascript
JS实现带阴历的日历功能详解
Jan 24 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
德生PL550的电路分析
2021/03/02 无线电
MySQL授权问题总结
2007/05/06 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
JSONP跨域请求
2017/03/02 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
py中的目录与文件判别代码
2008/07/16 Python
python多线程编程中的join函数使用心得
2014/09/02 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
Python sep参数使用方法详解
2020/02/12 Python
pycharm安装及如何导入numpy
2020/04/03 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
如何掌握自荐信格式呢
2013/11/19 职场文书
技校生自我鉴定
2013/12/08 职场文书
车间班组长的职责
2013/12/13 职场文书
网管求职信
2014/03/03 职场文书
地道战观后感
2015/06/04 职场文书
导游词之大雁塔景区
2019/09/17 职场文书