位置: 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微信支付)

  • 苹果xs和xsmax有什么区别(苹果xs与xsmax)

    苹果xs和xsmax有什么区别(苹果xs与xsmax)

  • vivo x50如何截屏(vivo x50如何截图)

    vivo x50如何截屏(vivo x50如何截图)

  • 豆瓣私信过于频繁多久解禁(豆瓣私信过于频繁多久恢复)

    豆瓣私信过于频繁多久解禁(豆瓣私信过于频繁多久恢复)

  • 怎么看抖音给我们的标签(怎么看抖音给我们打的标签)

    怎么看抖音给我们的标签(怎么看抖音给我们打的标签)

  • qq如何设置自动回复给专属的人(qq如何设置自动同意好友)

    qq如何设置自动回复给专属的人(qq如何设置自动同意好友)

  • 一体手机进水晾多久开机(一体手机进水晾干后充电慢)

    一体手机进水晾多久开机(一体手机进水晾干后充电慢)

  • Word标准色蓝色怎么设置(word标准色蓝色黑体)

    Word标准色蓝色怎么设置(word标准色蓝色黑体)

  • macbook的safari没反应(macbook pro的safari不能上网)

    macbook的safari没反应(macbook pro的safari不能上网)

  • 苹果11玩一会就发热正常吗(苹果11玩一会就发烫怎么解决)

    苹果11玩一会就发热正常吗(苹果11玩一会就发烫怎么解决)

  • 3dmax和cad的区别(3dmax与cad关系)

    3dmax和cad的区别(3dmax与cad关系)

  • medly安卓闪退(medly安卓版下载教程)

    medly安卓闪退(medly安卓版下载教程)

  • nex3s什么时候上市(nex3啥时候发布的)

    nex3s什么时候上市(nex3啥时候发布的)

  • 华为取消屏幕下三个键(华为取消屏幕下滑功能)

    华为取消屏幕下三个键(华为取消屏幕下滑功能)

  • 关闭密码保护共享保存不了(关闭密码保护共享设置不生效)

    关闭密码保护共享保存不了(关闭密码保护共享设置不生效)

  • 苹果7p无服务怎么解决(苹果7p无服务怎么恢复)

    苹果7p无服务怎么解决(苹果7p无服务怎么恢复)

  • 淘宝卖家视频怎么下载(淘宝卖家视频怎么上传店铺)

    淘宝卖家视频怎么下载(淘宝卖家视频怎么上传店铺)

  • 手机怎么解除应用加密(手机怎么解除应用风险)

    手机怎么解除应用加密(手机怎么解除应用风险)

  • vivoz5提示呼吸灯在哪(vivoy53s呼吸灯)

    vivoz5提示呼吸灯在哪(vivoy53s呼吸灯)

  • 为什么我的苹果X上滑没有用(为什么我的苹果手机声音越来越小)

    为什么我的苹果X上滑没有用(为什么我的苹果手机声音越来越小)

  • 苹果xr可以用30w快充吗(苹果XR可以用几年)

    苹果xr可以用30w快充吗(苹果XR可以用几年)

  • m923q是什么型号(m928q是什么型号)

    m923q是什么型号(m928q是什么型号)

  • 麒麟990采用了什么纳米(麒麟990是什么芯片)

    麒麟990采用了什么纳米(麒麟990是什么芯片)

  • 怎么调整wps表格边距(怎么调整wps表格的行高和列宽)

    怎么调整wps表格边距(怎么调整wps表格的行高和列宽)

  • 电脑管家如何卸载(电脑管家如何卸载干净)

    电脑管家如何卸载(电脑管家如何卸载干净)

  • Pytorch优化器全总结(一)SGD、ASGD、Rprop、Adagrad(pytorch sgd优化器)

    Pytorch优化器全总结(一)SGD、ASGD、Rprop、Adagrad(pytorch sgd优化器)

  • 一切皆对象和深浅拷贝(一切皆对象什么意思)

    一切皆对象和深浅拷贝(一切皆对象什么意思)

  • 正常工资薪金包括年终奖吗
  • 耕地占用税中的耕地是指什么
  • 企业新成立,何种情况下需要开始记账报税
  • 利润表的期末余额
  • 打印机费用是属于管理费用吗
  • 房产经纪公司成本费用
  • 全资子公司合并报表是权益法还是成本法
  • 上市公司回购优先股
  • 长期应付款预算会计
  • 专利权转让的净收益计入
  • 现金收据为什么也在自制原始凭证的范畴呢?
  • 公司租的员工宿舍退租,现在要开发票给人家退房租
  • 增值税发票收款人复核人空白可以吗
  • 出口退税率为0算免税吗
  • 增值税附加税计入什么会计科目
  • 关于增值税报税的通知
  • 汇算清缴截止
  • 销售折扣和销售折让的账务处理
  • 月销售额小于10万的一般纳税人减免
  • ie异常
  • 如何让解决中世纪基督教世界黑暗
  • 抵扣给供货商预缴税款
  • 国家减免税款怎么申请
  • win10一键释放内存
  • 电脑输入法无法输入中文怎么办
  • mac开机声音取消
  • 经营租入的设备能够确认为资产吗
  • 拍卖本人文字作品原稿
  • 低值易耗品的管理和流程ppt
  • 发票开出未认证丢失怎么处理
  • zendstudio怎么创建php项目
  • 申报表已申报未交款后作废
  • vue实现动态菜单权限配置
  • traceroute命令详解
  • php 密码
  • 成品油发票如何下载库存
  • 商会年会活动策划方案模板
  • 印花税的征税范围及税率
  • 劳务派遣工资的发放单位
  • 固定资产原值和净值的区别
  • 企业所得税实施条例第22条
  • 出纳属于会计岗位职责吗
  • 4.建筑业企业资质
  • 企业土地补偿款如何做账
  • 预付账款在何时可以转出
  • 收据注明实际到账时间
  • 个人如何购买定增的股票
  • 消防公司会计分录
  • 其他应收款待抵扣税金
  • 财务票子怎么粘
  • 五险一金怎么用呢
  • 触发器中instead of
  • shell 加密密码
  • WIN10系统硬盘设置
  • macos越狱教程
  • centos6.5配置网络
  • win7连接宽带
  • win7破解版和正版的区别
  • linux ftp用户存在哪个文件中
  • windows10 rs4
  • linux中文件权限读写执行的三种标志符号依次是
  • python kmeans sklearn
  • jquery的checked
  • 使用shell命令
  • Node.js中的什么模块是用于处理文件和目录的
  • 批处理怎么操作
  • shell脚本实现批量移动文件
  • Android使用HttpURLConnection和HttpClient请求服务器数据
  • jquery中遍历指定的对象和数组是哪个方法
  • javascript面向对象编程指南
  • javascript中的匿名函数
  • 国税和地税比例
  • 党员参观红色教育基地活动的意义
  • 广东省广州市国家安全局
  • 东莞国家税务局横沥分局
  • 中华人民共和国刑法
  • 税务uk数据怎么导出来
  • 如何在个税app中设置企业登录密码
  • 济南车辆购置税完税证明电子版
  • 浙江农村医保手机上怎么缴费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设