vue2左侧菜单栏收缩展开功能

2024-04-28 19:52

本文主要是介绍vue2左侧菜单栏收缩展开功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. Main.vue页面代码

a. 修改侧边栏属性

b. 修改头部导航栏

c. 定义我们的变量

d. collapse函数

2. Header.vue页面代码

3. Aside.vue页面代码


vue2左侧菜单栏收缩展开目前是非常常见的,我们在日常开发过程中经常会碰到。这一小节我们就详细了解一下这个功能,完善我们的项目开发。

首先,修改Main.vue页面中的一些属性,有些属性需要动态绑定。接下来我们来一步一步实现。

1. Main.vue页面代码

a. 修改侧边栏属性

我们给我们导入的Aside组件动态绑定一个isCollapse。然后再下面的方法中定义

logoTextShow是我们动态绑定的系统名称:当我们点击收缩菜单时,系统名称会隐藏,展示我们的系统图标。

下面是效果展示:

<!--其它代码--><!-- 侧边栏 -->
<el-aside :width="sideWidth + 'px'" style="background-color: rgb(238, 241, 246);height: 100%"><Aside :isCollapse="isCollapse" :logoTextShow="logoTextShow"/>
</el-aside><!--其它代码-->

b. 修改头部导航栏

头部导航栏是我们点击收缩展开按钮的地方,我们在这里动态绑定点击函数。collapse函数就是我们动态绑定的函数。

<!--其它代码--><!-- 头部导航栏 -->
<el-header style="border-bottom: 1px solid #ccc;"><Header :collapseBtnClass="collapseBtnClass" :collapse="collapse"/>
</el-header><!--其它代码-->

c. 定义我们的变量

我们在return中定义我们的collapseBtnClass图标变量;

定义Aside.vue中的sidewidth左侧菜单栏宽度

还有默认展示我们的系统名称而不是展示logo图片

<!--其它代码-->
data () {return {collapseBtnClass: 'el-icon-s-fold',isCollapse: false,sideWidth: 220,logoTextShow: true}
},
<!--其它代码-->

d. collapse函数

这里我们函数的逻辑是:

当我们点击收缩菜单图标时,isCollapse变量为flase;

当我们的isCollapse变量为false时,this.sidewidth宽度为64,图标设置为收缩图标

然后我们的系统名称隐藏;

相反:我们的菜单宽度为220;设置展开图标,系统名称菜单展示

<!--其它代码-->
methods: {collapse () {this.isCollapse = !this.isCollapseif (this.isCollapse) {this.sideWidth = 64this.collapseBtnClass = 'el-icon-s-unfold'this.logoTextShow = false} else {this.sideWidth = 220this.collapseBtnClass = 'el-icon-s-fold'this.logoTextShow = true}}
}
<!--其它代码-->

2. Header.vue页面代码

首先在我们面包屑上面加一个span标签:

绑定我们的class为collapseBtnClass:

设置一个点击事件:collapse

<!--其它代码-->
<span :class="collapseBtnClass" style="cursor: pointer; font-size: 18px" @click="collapse"></span>
<!--其它代码-->

这里牵扯到一个父子传值和子子传值。父子传值我们在子组件里面接收就要用props来接收

<!--其它代码-->
props: {collapseBtnClass: String,collapse: Function
}
<!--其它代码-->

3. Aside.vue页面代码

我们在标签<el-menu>绑定我们的属性:

<el-menu:default-openeds="[]" style="min-height: 100%; overflow-x: hidden"background-color="#1f2d3d"text-color="#fff"default-active="/home"active-text-color="rgb(75 175 255)":collapse-transition="false":collapse="isCollapse"router>

系统名称给一个v-show事件

<div style="height: 60px; line-height: 60px; text-align: center"><img src="../assets/logo.png" alt="" style="width: 20px; position: relative; top: 2px;"><b style="color: white" v-show="logoTextShow">仓库管理系统</b>
</div>

然后我们在下面接收父组件传递的值:

<!--其它代码-->
props: {isCollapse: Boolean,logoTextShow: Boolean
}
<!--其它代码-->

现在会有一个问题,我们点击收缩菜单栏时菜单文字会有遗留,我们给一个样式来隐藏文字

<style>
.el-menu-item.is-active {background-color: rgb(38, 52, 69) !important;
}
.el-menu-item:hover {background-color: rgb(38, 52, 69) !important;
}.el-submenu__title:hover {background-color: rgb(38, 52, 69) !important;
}
/*解决收缩菜单文字不消失问题*/
.el-menu--collapse span {visibility: hidden;
}
</style>

以上就是我们的菜单栏收缩展开全部教程。

这篇关于vue2左侧菜单栏收缩展开功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944117

相关文章

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.