位置: IT常识 - 正文

Vue中二级菜单的实现(vue二级菜单的隐藏与显示)

编辑:rootadmin
Vue中二级菜单的实现

推荐整理分享Vue中二级菜单的实现(vue二级菜单的隐藏与显示),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue二级菜单功能,vue二级下拉导航栏,vue层级菜单,vue二级菜单栏实现,vue二级菜单功能,vue二级菜单的隐藏与显示,vue下拉二级子菜单怎么实现,vue二级菜单的隐藏与显示,内容如对您有帮助,希望把文章链接给更多的朋友!

在不使用ElementUi等框架的情况下,制作一个二级菜单,网上搜寻很多资料,但部分要不只显示HTML结构,不显示CSS样式,要不就是复杂的让人无法理解。

效果图:

针对菜单做了CSS样式修饰,给一级二级菜单都添加了鼠标悬浮事件,当悬浮到某个菜单时,背景颜色,字体颜色发生改变。当点击某个一级菜单时,二级菜单实现显示和隐藏的动态切换。

菜单的HTML结构:<div class="nav">--------------------一级菜单------------------<ul><liv-for="item in menus":key="item.id"@click="changeCheck(item.id)":class="{ check: currentTag == item.path }"class="mainMenu"><router-link:to="{name:item.path,params:userName}"class="mainA"@click.native="TabName(item.title)">{{ item.title }}</router-link>------------------二级菜单----------------------<ul v-if="item.children && item.active"><liclass="subMneu"v-for="(child, index) in item.children":key="index"@click="clickSubMenu(item,child.title)"><router-linkclass="menuB":to="{name:child.path,params:userName}":class="{ menu_active: child.active }">{{ child.title }}</router-link></li></ul></li></ul></div>代码分析:

针对菜单采用的是ul列表,然后采用v-for循环对菜单数据进行循环,菜单采用的是动态样式 : class

当点击菜单的path地址和菜单中的某个path相等时,动态渲染该样式。

li包含<router-link>是为了当点击该菜单时,跳转到相应的内容

菜单的JS代码:Vue中二级菜单的实现(vue二级菜单的隐藏与显示)

data( )函数数据:

export default {components: {},data() {return {menus: [{ id: 1, title: "用户管理", path: "UserMannger", active: false },{id: 2,title: "商品管理",path: "goodsManger",active: false,children: [{ id: 21, title: "增加商品", path: "addGoods", active: false },],},{ di: 3, title: "关于我们", path: "about", active: false },],currentTag: "",tabName: "",flag2: true,// tabName:'用户管理',userName:''};},

JS代码

methods: {changeCheck(id) {const obj = this.menus.find((item) => item.id == id);this.menus.find((item) => {if (item.id == id) {item.active = !item.active;if (item.children) {item.children.active = !item.active;}}});this.currentTag = obj.path;},clickSubMenu(main,val) {this.tabName = valmain.children[0].active = !main.children[0].activemain.active = !main.children[0].active;},backHome() {this.$router.push("/UserMannger/123");},getLogin2(val){this.userName = val},TabName(val){console.log(val);this.tabName = val}},created() {this.$bus.$on('toHome',this.getLogin2)},};

方法中 changeCheck函数分析:

首先先接收点击菜单的id,对menus数字进行遍历,当id相同时,将该菜单的active属性进行动态改变,这样做是为了动态切换样式。在遍历中还要对子菜单进行判断,如果有子菜单则将该子菜单的active属性改变

方法中 clickSubMneu函数分析:

因为该方法是当点击子菜单触发此事件,触发事件时传入该子菜单的一级菜单,然后将该菜单的子菜单的active属性进行动态改变,并且将主菜单的active属性始终与子菜单保持相反。

因为这里只设置了一个子菜单所以下标为0,当需要设置多个子菜单时,还需要传入index和子菜单的index然后进行判断方法和对一级菜单的判断相同。

CSS代码当点击子菜单的a标签的公共样式.menu_active {color: red;display: block;width: 100%;text-decoration: none;color: rgb(255, 208, 75);background-color: #409eff;}菜单修饰.nav {height: 100%;flex-grow: 1;background-color: #001529;ul {.mainMenu {margin-top: 20px;width: 100%;text-align: center;line-height: 50px;color: white;.mainA {display: block;width: 100%;text-decoration: none;color: white;&:hover {background-color: #409eff;}&:active {color: rgb(255, 208, 75);}}}}}

这里采用的SCSS预编译语言:

在菜单css修饰中需要注意的是,一定要给一级菜单和二级菜单起名字,即使scss能够嵌套,依然会发生样式穿透的bug,所以针对一级菜单和二级菜单的样式进行单独修饰。

这里还需要知道的是 scss中有 :active和 : hover 的伪类用法,前者是当点击时触发该样式,后者是鼠标悬浮时触发的样式。

本文链接地址:https://www.jiuchutong.com/zhishi/294564.html 转载请保留说明!

上一篇:promise和async用法及区别(详解)(promise async区别)

下一篇:uniapp实现微信支付、支付宝支付(uniapph5微信支付)

  • 荣耀30有几倍变焦呢(荣耀30s 20倍变焦)

    荣耀30有几倍变焦呢(荣耀30s 20倍变焦)

  • 腾讯课堂学生能看自己的在线时长吗(腾讯课堂学生能看到学生名单吗)

    腾讯课堂学生能看自己的在线时长吗(腾讯课堂学生能看到学生名单吗)

  • 如何恢复十年前的好友(如何恢复十年前删除的照片)

    如何恢复十年前的好友(如何恢复十年前删除的照片)

  • 虚函数实现了C++的什么机制(c 虚函数)

    虚函数实现了C++的什么机制(c 虚函数)

  • 苹果11屏幕碎了在保修期内怎么处理(苹果11屏幕碎了换屏幕要多少钱)

    苹果11屏幕碎了在保修期内怎么处理(苹果11屏幕碎了换屏幕要多少钱)

  • 小米6开不了机(小米6开不了机mi一直跳)

    小米6开不了机(小米6开不了机mi一直跳)

  • 如何注销秘乐短视频(如何注销秘乐短视频实名认证)

    如何注销秘乐短视频(如何注销秘乐短视频实名认证)

  • 笔记本电脑死机怎么办没反应(笔记本电脑死机解决办法)

    笔记本电脑死机怎么办没反应(笔记本电脑死机解决办法)

  • mlled是什么手机(mlled r9是什么手机)

    mlled是什么手机(mlled r9是什么手机)

  • 联想进pe按哪个键(联想进入pe界面)

    联想进pe按哪个键(联想进入pe界面)

  • 港版iphone11支持电信吗(港版的苹果11)

    港版iphone11支持电信吗(港版的苹果11)

  • 程序设计语言的分类(程序设计语言的技术特性不应包括)

    程序设计语言的分类(程序设计语言的技术特性不应包括)

  • iphone6s内存有几种(iphone 6s的内存)

    iphone6s内存有几种(iphone 6s的内存)

  • qq音乐密码怎么改(qq音乐设置密码)

    qq音乐密码怎么改(qq音乐设置密码)

  • ipx5级防水能不能泡水(ipx5级防水可以冲水吗)

    ipx5级防水能不能泡水(ipx5级防水可以冲水吗)

  • vivox21有nfc功能吗(vivox21手机nfc功能是什么怎么用)

    vivox21有nfc功能吗(vivox21手机nfc功能是什么怎么用)

  • iphonexr支持2a充电吗(iphonexr可以用5v2a的充电器吗)

    iphonexr支持2a充电吗(iphonexr可以用5v2a的充电器吗)

  • 什么是带有pe功能的u盘(pe表示什么功率怎么计算)

    什么是带有pe功能的u盘(pe表示什么功率怎么计算)

  • 苹果手机呼吸灯怎么开(苹果手机呼吸灯在哪)

    苹果手机呼吸灯怎么开(苹果手机呼吸灯在哪)

  • 美团众包超时扣钱规则(美团众包超时扣款怎么申诉)

    美团众包超时扣钱规则(美团众包超时扣款怎么申诉)

  • oppoa9手机充电的时候有没有显示灯(oppoa95手机充电)

    oppoa9手机充电的时候有没有显示灯(oppoa95手机充电)

  • vivoy3手机上市时间(vivoy3手机什么时候上市的)

    vivoy3手机上市时间(vivoy3手机什么时候上市的)

  • realmex青春版厚度(realmex青春版6gb+128gb参数价格)

    realmex青春版厚度(realmex青春版6gb+128gb参数价格)

  • 图片大小设置为100px150px(图片大小设置为80%)

    图片大小设置为100px150px(图片大小设置为80%)

  • 鸿蒙工具箱有扩展内存吗详情(鸿蒙工具栏在哪里)

    鸿蒙工具箱有扩展内存吗详情(鸿蒙工具栏在哪里)

  • 织梦模板dedecms列表页隔行/多行随意换色换样式代码(织梦模板首页logo修改)

    织梦模板dedecms列表页隔行/多行随意换色换样式代码(织梦模板首页logo修改)

  • 公司购买车辆的好处
  • 分公司上交总公司营业款如何记账
  • 长期待摊费用如何摊销计算
  • 住宿发票税率有哪4种
  • 纳税人如何办理纳税申报流程
  • 盘盈资产开具发票是否符合规定
  • 递延收益是什么科目应该怎么处理
  • 收到增值税专用发票是已经付款了吗
  • 基建账的年终结转
  • 旧发票专用章如何处理
  • 2017年消费税税率
  • 养牛需要活动场地吗
  • 递延年金现值计算公式解释
  • 培训费是否能全额退款
  • 折旧费和摊销费怎么算
  • 出口退税申报时间限制
  • 员工垫付费用多久报销合理
  • 原材料生产产生的费用
  • vue3如何
  • 固定资产折旧计算方法
  • 铡什么意思
  • ptssvc.exe - ptssvc是什么进程 有什么用
  • Mac笔记本电脑截图
  • 政府补助退回的账务处理
  • PHP:session_set_save_handler()的用法_Session函数
  • 外企借款投资利息高吗
  • 盈余公积科目是什么科目
  • 非营利性组织收到政府拨款转出给其他部门怎么做账
  • 应收账款融资的风险控制
  • 哈勃太空望远镜取得的部分成果有哪些
  • php in
  • 利润分配的会计分录怎么写
  • 资产负债表中投资总额是什么
  • 如何用php做到页数显示
  • 公司客户招待费用标准
  • 增值税发票校验码在哪个位置
  • 基于Perclos&改进YOLOv7的疲劳驾驶DMS检测系统(源码&教程)
  • 前端 教程
  • 微信小程序小小驯龙师破解版
  • shift命令 向左移动参数
  • access china
  • 资产负债表怎么算
  • 母公司兼并子公司怎么办
  • 小规模纳税人增值税专用发票税率
  • 食堂维修费用计入什么科目
  • 预收账款是什么要素
  • 上一年度所得税忘记计提了怎么办
  • 加计扣除所得税怎么算
  • 公司购车按揭利率是多少
  • 个税起征点提高的意义
  • 物业门禁卡怎么入账
  • 商业劳务费是什么意思
  • 酒店租金计入什么会计科目
  • 进口增值税已付什么意思
  • 生育津贴领取条件及流程
  • 会计凭证审核的主要内容
  • 体检收据可以入档案吗
  • 对公转账需要填写开户行吗
  • 待处理财产损益是备抵类科目吗
  • 周转金怎么计算
  • 金税盘发票全额抵扣如何做账
  • 销售折让的会计分录
  • 项目期间费用包括哪些费用
  • 过滤重复字符串
  • mysql存储引擎实现原理
  • mysql安装包和免安装的区别
  • Vista下jusched.exe进程与禁用
  • centos下载与安装
  • Ubuntu 16.04 Server Edition 英文版安装教程
  • gwservice进程
  • windows10 rs2
  • 怎么提高xp系统运行速度
  • win7安装无法将windows配置为在此计算机上运行
  • win10 1511(win10 TH2)如何调整开始屏幕磁贴大小?
  • Android OpenGL ES 入门
  • python中numpy.zeros(np.zeros)的使用方法
  • javascript零基础入门
  • 教你学python
  • 威科先行法律信息库价格
  • 北京地方税务局李宗定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设