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

  • iqoo5搭载的是什么处理器(iqoo5是什么机身)

    iqoo5搭载的是什么处理器(iqoo5是什么机身)

  • qq显示一个耳朵什么意思(qq里面显示一个耳朵)

    qq显示一个耳朵什么意思(qq里面显示一个耳朵)

  • 拼多多系统繁忙(拼多多系统繁忙怎么破)

    拼多多系统繁忙(拼多多系统繁忙怎么破)

  • 腾讯会议手机可以共享屏幕吗(腾讯会议手机可以开摄像头吗)

    腾讯会议手机可以共享屏幕吗(腾讯会议手机可以开摄像头吗)

  • 拼多多绑定第三方店铺淘宝会影响淘宝店吗(拼多多绑定第三方店铺链接在哪里找)

    拼多多绑定第三方店铺淘宝会影响淘宝店吗(拼多多绑定第三方店铺链接在哪里找)

  • ipad a2197是几代(ipada2197是哪一代)

    ipad a2197是几代(ipada2197是哪一代)

  • 苹果8怎么改5g网络(苹果8怎么改5g网络模式)

    苹果8怎么改5g网络(苹果8怎么改5g网络模式)

  • RFID系统由哪三部分组成(rfid系统由哪三部分组成)

    RFID系统由哪三部分组成(rfid系统由哪三部分组成)

  • 荣耀30pro是不是曲面屏(荣耀30pro是不是莱卡)

    荣耀30pro是不是曲面屏(荣耀30pro是不是莱卡)

  • 苹果11三款手机有什么区别(苹果11三款手机尺寸对比)

    苹果11三款手机有什么区别(苹果11三款手机尺寸对比)

  • word文档为什么用不了(word文档为什么下面空很大一部分)

    word文档为什么用不了(word文档为什么下面空很大一部分)

  • ipad外放没有声音(ipad外放没有声音维修要多少钱)

    ipad外放没有声音(ipad外放没有声音维修要多少钱)

  • 兄弟码是什么号码(兄弟数字代码是什么数字)

    兄弟码是什么号码(兄弟数字代码是什么数字)

  • rioal00是华为什么型号(华为rioal00是什么型号多少钱)

    rioal00是华为什么型号(华为rioal00是什么型号多少钱)

  • 手机怎么测分贝(荣耀手机怎么测分贝)

    手机怎么测分贝(荣耀手机怎么测分贝)

  • 华为怎样关闭抬起唤醒(华为怎样关闭抬手就亮)

    华为怎样关闭抬起唤醒(华为怎样关闭抬手就亮)

  • 视频能不能截部分画面(视频可以截短吗)

    视频能不能截部分画面(视频可以截短吗)

  • 小米手机放大镜怎么弄(小米手机放大镜功能怎么用)

    小米手机放大镜怎么弄(小米手机放大镜功能怎么用)

  • 苹果8镜像怎么关闭(苹果8镜像怎么放大全屏模式)

    苹果8镜像怎么关闭(苹果8镜像怎么放大全屏模式)

  • react是什么框架(react框架有哪些)

    react是什么框架(react框架有哪些)

  • 小米4按键失灵修复小技巧(小米按键失灵怎么办)

    小米4按键失灵修复小技巧(小米按键失灵怎么办)

  • 话费慢充原理(话费慢充原理图解)

    话费慢充原理(话费慢充原理图解)

  • xr突然黑屏开不了机(苹果xr突然黑屏没反应)

    xr突然黑屏开不了机(苹果xr突然黑屏没反应)

  • 如何关闭Windows中的MMCSS服务(如何关闭windows10自动更新)

    如何关闭Windows中的MMCSS服务(如何关闭windows10自动更新)

  • 2023前端面试题合集(附答案)持续更新中...(2023前端面试题百度云)

    2023前端面试题合集(附答案)持续更新中...(2023前端面试题百度云)

  • 什么公司需要缴纳印花税
  • aisino金税盘怎么安装在电脑上
  • 支付给员工的工资属于什么科目
  • 不抵扣勾选怎么撤销
  • 企业如何提供准确的会计信息
  • 补缴工会经费后所得税还要调整吗
  • 房地产企业回迁安置房税收规定
  • 收到货款未开发票怎么做分录
  • 保教费免征增值税政策
  • 劳保费计入管理费用的什么
  • 无形资产后续支出计入什么科目
  • 转账支票背书有时间限制吗
  • 投资收益会计处理
  • 地址变更工商局上门检查
  • 旅游业务增值税税率
  • 会计里面红字冲销是什么意思
  • 购进免税农产品再销售免税吗
  • 办公室出租中介公司
  • 预提厂房租金
  • 印花税扣款
  • 银行抵押贷款结清后需要解押吗
  • 应交税金年终怎么计算
  • 购买原材料的运输费计入什么科目
  • 企业微信api错误码
  • php中substr()
  • 收回应收账款会影响应收账款的账面价值吗
  • 为什么入账价值不包括增值税
  • 融资租赁会计处理承租人
  • msmpeng.exe 是什么
  • php如何提高程序运行效率
  • php和mysql的结合是目前web开发中的黄金组合
  • 增值税纳税筹划案例最新
  • 控制器操作视频
  • php的hashtable
  • 快速搞懂Pinia及数据持久化存储(详细教程)
  • yolov5实例分割原理详解
  • 融资租入的机器设备属于什么科目
  • 中药饮片适用增值税税率
  • [paper] lift,splat,shooting 论文浅析
  • 售后租回怎么理解
  • 发票打印机如何安装在电脑上
  • 递延所得税资产借贷方向
  • sql有什么
  • Python中input输入多行文本
  • 编制利润表计算公式
  • 注册资本认缴出资日期是什么意思
  • sql无法运行
  • 核定征收企业有没有自然人电子税务
  • 房企预收款如何缴纳企业所得税
  • 发票申请退税隔两个月能去办理么
  • 企业收到宣传费怎么做账
  • 转出未交增值税会计账务处理
  • 预交税会计分录
  • 研发支出计入产品成本吗
  • 从个人处借款的会计分录
  • 贴现汇票到期收回时
  • 融资租入固定资产的入账价值
  • sql server怎么添加数据
  • 电脑bios怎么设置usb启动
  • linux命令行怎么查看公网ip
  • win7更新和安全在哪里
  • linux系统中网络配置文件一般放在
  • windowsxp右键没反应
  • win10系统百度网盘链接
  • linux012
  • javascript的核心
  • js一维数组转树结构
  • 推荐10 个很棒的电影
  • 批处理命令在哪个菜单中
  • CalledFromWrongThreadException: Only the original thread that created a view
  • JavaScript中的NaN代表什么
  • 虚拟主机 推荐
  • JQueryEasyUI之DataGrid数据显示
  • unity引擎叫什么
  • unitysdk接入
  • dom使用
  • 我国就业制度的演变
  • 核定征收的适用税率
  • 黄金消费税如何缴纳
  • 购买税控盘怎么抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设