二、后台管理系统布局菜单可拖动

devtools/2024/10/17 17:02:09/

        前两天产品提出了一个需求,说后台管理系统的左边菜单的名称字数过多,遮挡了。希望能让客户能够看到全部的名称,给左侧菜单增加一个可拖动的功能,经过我的研究,这个功能最终也做出来了,先看效果,双击查看。

07a5f02b8b5d49f3a58485689ffdcd49.gif

 

3813c0d9fa7d4e31a068a7a5648dca69.png

 

下面咱们进入实现步骤

第一步,找到文件。一般的项目中都存在layout的文件夹,找到他的index.vue文件。

 

第二步,修改template部分。其中在左侧菜单栏的下面新增resize节点。

<template><el-container><!-- 顶部组件 --><el-header> <Header /> </el-header><el-container><!-- 左侧菜单树 --><el-aside id="left-tree"><Menu /><!-- 中间拖动栏 --><div id="resize" class="resize" title="收缩侧边栏">⋮</div></el-aside><el-container direction="vertical" id="right-content"><!-- 导航栏 --><Tabs /><el-main><!-- 内容栏 --><Content /></el-main></el-container></el-container></el-container>
</template>

第三步,在script中增加拖动的方法。

function dragControllerDiv() {let left = document.getElementById('left-tree')let line = document.getElementById('resize')let right = document.getElementById('right-content')// 鼠标按下事件line.onmousedown = function (e) {let startX = e.clientXline.left = line.offsetLeft// 鼠标拖动事件document.onmousemove = function (e) {let moveLen = line.left + (e.clientX - startX)if (moveLen >= document.body.clientWidth * 0.1 &&moveLen <= document.body.clientWidth * 0.4) {left.style.width = moveLen + 'px'right.style.width = document.body.clientWidth - moveLen + 'px'}}document.onmouseup = function () {document.onmousemove = nulldocument.onmouseup = null}}
}onMounted(() => {dragControllerDiv()
})

第四步,修改样式。增加拖动样式,其中最主要的是el-side和resize属性的设置。

.el-header {background-color: rgb(31, 44, 81);height: 48px;max-height: 48px;color: #fff;
}
.el-aside {position: relative;height: 100%; // 如果存在box-sizing,此处设置就会用会影响,可以先去掉看看效果background: #001529;vertical-align: top;display: inline-block;box-sizing: border-box;-ms-flex-negative: 0;flex-shrink: 0;width: 210px;overflow: hidden;left: 0;
}
.el-main {background: #f8f8f8;padding: 0;overflow: hidden;
}
.resize {cursor: col-resize;position: absolute;top: 0;right: -8px;background-color: #d6d6d6;border-radius: 5px;width: 10px;height: 100%;background-size: cover;background-position: 50%;font-size: 32px;color: #fff;
}

以上就是在后台管理系统中如何进行左侧菜单栏进行左右拖动,拖动后固定到位置,也可以保存在storage中让其他的页面也可以使用。有什么不懂的可以给我发私信,共同进步,共同成长。

 


http://www.ppmy.cn/devtools/125392.html

相关文章

用C++编写信息管理系统(歌单信息管理)

C语言是面向过程的编程语言&#xff0c;而C是面向对象的编程语言&#xff0c;在书写代码时风格有所不同&#xff08;也存在很多共性&#xff09;。 程序说明 本次系统程序使用的是C语言进行编写&#xff0c;主要考虑怎么实现面向对象的问题。 因为本次程序属于小型系统程序&…

【LeetCode热题100】分治-快排

本篇博客记录分治快排的4道题目&#xff1a;颜色分类、排序数组、数组中的第K个最大元素、数组中最小的N个元素&#xff08;库存管理&#xff09;。 class Solution { public:void sortColors(vector<int>& nums) {int n nums.size();int left -1,right n;for(int…

Android中的Activity(案例+代码+效果图)

目录 1.Activity的生命周期 核心生命周期回调 1&#xff09;onCreate() 2&#xff09;onStart() 3&#xff09;onResume() 4&#xff09;onPause() 5&#xff09;onStop() 6&#xff09;onRestart() 7&#xff09;onDestroy() 8&#xff09;生命周期图示 10&#xff09;注意事项…

PyCharm打开及配置现有工程(详细图解)

本文详细介绍了如何利用Pycharm打开一个现有的工程&#xff0c;其中包括编译器的配置。 PyCharm打开及配置现有工程 1、打开工程2、配置编译器 1、打开工程 双击PyCharm软件&#xff0c;点击左上角 文件 >> 打开(O)… 选中想要打开的项目之后点击“确定” 2、配置编译器…

【进阶OpenCV】 (12)--人脸检测识别

文章目录 人脸识别一、获取分类器二、代码实现1. 图片预处理2. 加载人脸检测分类器3. 检测人脸4. 标注人脸 总结 人脸识别 要实现人脸识别首先要判断当前图像中是否出现了人脸&#xff0c;这就是人脸检测。只有检测到图像中出现了人脸&#xff0c;才能据此判断这个人到底是谁。…

实时语音转文字(基于NAudio+Whisper+VOSP+Websocket)

今天花了大半天时间研究一个实时语音转文字的程序&#xff0c;目的还包括能够唤醒服务&#xff0c;并把命令提供给第三方。 由于这方面的材料已经很多&#xff0c;我就只把过程中遇到的和解决方案简单说下。源代码开源在AudioWhisper: 实时语音转文字(基于NAudioWhisperVOSPWe…

解决新版Android studio不能连接手机的问题

我要说的是一个特例&#xff0c;装了22年的版本AS可以正常连接手机&#xff0c;装了23年以后新版本&#xff0c;AS不能正常连接手机了&#xff0c;但是在CMD控制台可以正常的执行adb命令&#xff0c;并且CMD和AS都是指向D:\android_sdk\platform-tools\adb.exe 一、 为什么会出…

应对网站IP劫持的有效策略与技术手段

摘要&#xff1a; IP劫持是一种常见的网络攻击方式&#xff0c;攻击者通过非法手段获取目标网站服务器的控制权&#xff0c;进而改变其网络流量的路由路径&#xff0c;导致用户访问错误的站点。本文将介绍如何识别IP劫持&#xff0c;并提供一系列预防和应对措施&#xff0c;以确…