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

  • 税金及附加需要计提吗
  • 小规模企业能否抵扣
  • 付给非公司员工提成可以走委托代销商品吗
  • 员工充值饭卡的收入如何做账
  • 实收资本印花税税率
  • 长期借款账务处理会计分录例题
  • 银行结汇汇兑损益的会计分录怎么写?
  • 企业所得税税前扣除异常是什么意思
  • 单位体检如何入账
  • 出口退税的企业范围
  • 企业多扣个税怎么处理
  • 跨区域施工要交什么税
  • 预付款发票可以入费用吗
  • 计提增值税附加税的会计科目
  • 发票税率开错怎么处理?
  • 企业注销前注册资本必须到账吗
  • 两年内到期的应付票据
  • 职业年金属于应交税费吗
  • 什么人可以领购房补贴怎么领取
  • 六险一金指的是哪六险哪一金
  • 地毯属于什么类别垃圾分类
  • 委托加工物资在初级第几章
  • 专利年费应该入哪个科目
  • 法院判决书能作为证据使用吗
  • 金税盘发票显示不出确认
  • 无法偿还的借款怎么处理
  • 外商投资企业盈余公积转增资本是否交预提所得税
  • 所得税汇算清缴补税的会计处理
  • 设置按住键盘重启怎么弄
  • macos 关闭屏幕
  • 盈余公积的提取基数
  • PHP:mcrypt_ecb()的用法_Mcrypt函数
  • 增值税如何形成欠税
  • 迁徙的季节主要从哪几个方面写秋天的景物
  • 增值税加计抵减怎么算
  • Yii2中添加全局函数的方法分析
  • php使用自定义函数的方式
  • js删除
  • -mtime命令
  • three.js gui
  • 税控维护费可以抵企业所得税吗
  • 企业转让时应收账款如何处理
  • 分公司需要做纳税申报吗
  • 专利年费可以做研发费用吗
  • 一般纳税人应交税费二级科目有哪些
  • 商誉必须减值吗
  • 主营业务利润率标准
  • 招待费专票不可以抵扣
  • 口罩属于什么经济分类
  • 个体工商户要做账报税吗
  • 股权变更如何交税
  • 税盘连接服务器失败
  • 银行承兑汇票的特点
  • 应收账款计提减值准备会计处理
  • 总公司给分公司拨款怎么做账
  • 无法收回的款项怎么记账
  • 公司开发的app费用怎么算
  • 分期付款购车需要什么
  • 差旅费包干管理办法
  • 收到的赔款罚款怎么做账
  • 哪些情形不需要办理变更登记
  • 小规模纳税人怎么申报增值税报表
  • 三种实现方法实现的特点
  • 批量更新数据库最多多少条
  • Linux/Mac MySQL忘记密码怎么办
  • Win10预览版拆弹
  • mac如何取消自动开机
  • centos禁止用户登录
  • bios设置操作步骤
  • ubuntu 04 10
  • win8搜索不到自己家的WiFi
  • Linux系统中配置网络
  • cocos2dx性能优化与包体优化
  • 非递归快速排序python
  • python中二维列表的定义
  • js上传文件到后端
  • python快速排序最简单写法
  • 如何查看自己公司的税种
  • 手撕发票查询真伪平台
  • 重庆市深化新时代教育评价改革幼儿园
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设