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

news2024/11/26 5:57:49

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

下面咱们进入实现步骤

第一步,找到文件。一般的项目中都存在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.clientX
    line.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 = null
      document.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.coloradmin.cn/o/2210565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA之手动添加作者信息

IDEA不能像eclipse一样&#xff0c;直接使用/**注释快捷键在类上带出作者信息。 解决方案&#xff1a; 手动添加自定义作者注释快捷键 /*** Author: TroubleBoy* Date: $DATE$* Description: TODO*/ 6.编辑日期变量&#xff0c;设置变量DATE的Expression为date() 7.应用Java…

Nacos的相关资料

目录 Nacos的Mysql文件&#xff1a; custom.env文件&#xff1a; 执行的Docker命令&#xff1a; 从 GitHub 官方仓库下载 Nacos&#xff1a;https://github.com/alibaba/nacos Nacos的Mysql文件&#xff1a; -- --------------------------------------------------------…

【工具类】hutool http请求获取S3图片流

博主介绍&#xff1a;✌全网粉丝20W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

基于数字信号处理的语音数字识别器

基于数字信号处理的语音数字识别器 系统说明 该系统工作流程图如下 各部分关键参数及简要说明如下。 预处理阶段&#xff1a; 预录制语音为单个数字的语音&#xff0c;从 0 - 9 共 10 组&#xff0c;采样率 16 kHz计算 MFCC 特征中&#xff0c;Mel 滤波器组个数 40&#xff…

Journey Training:o1的一次复现尝试,极长思维链的合成

知乎&#xff1a;啦啦啦啦&#xff08;已授权&#xff09;链接&#xff1a;https://zhuanlan.zhihu.com/p/902522340 论文&#xff1a;O1 Replication Journey: A Strategic Progress Report链接&#xff1a;https://github.com/GAIR-NLP/O1-Journey 这篇论文记录了一次o1复现尝…

IBMS集成管理平台——推动建筑业数字化转型

随着城市发展和科技进步&#xff0c;智慧楼宇(IBMS)作为建筑智能化的核心系统&#xff0c;已经成为现代建筑中不可或缺的一部分。通过整合各种智能设备和系统&#xff0c;IBMS提供了对建筑内部运行状况的全面监控和管理&#xff0c;实现了能源节约、安全保障和舒适体验的多重目…

关于拖拽时需要注意的细节

cklick,mousedown,mouseup 当触发点击事件后三者的触发顺序 当元素放大用scalse时&#xff0c;检测鼠标的移动距离用不用/scale&#xff1f; <!doctype html> <html lang"en"><head><meta charset"UTF-8" /><link rel"ic…

【专题】智启未来:新质生产力引擎驱动下的智能制造行业革新报告合集PDF分享(附原数据表)

原文链接&#xff1a; https://tecdat.cn/?p37856 在当今全球经济格局深刻变革的大背景下&#xff0c;制造业作为国家经济的基石&#xff0c;正处在高质量发展的关键历史时期。智能决策作为一股崭新的力量&#xff0c;正逐步成为推动制造业数智化转型的强大新动能。众多制造企…

C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式

今天想通过和大家分享如何删除字符串最后一个字符的N种实现方法&#xff0c;来回顾一些基础知识点。 01第一类、字符串方式 这类方法是通过string类型自身方法直接实现。 1、Substring方法 相信大多数人第一个想到的可能就是这个方法。Substring方法是字符串内置方法&#…

基于苔藓生长优化算法(Moss Growth Optimization, MGO)的多无人机协同三维路径规划(提供MATLAB代码)

一、苔藓生长优化算法介绍 苔藓生长优化算法&#xff08;Moss Growth Optimization, MGO&#xff09;是一种受自然界苔藓生长机制启发的元启发式优化算法。这种算法模仿了苔藓在潮湿环境中的扩散和生长方式&#xff0c;以寻找复杂问题的最优解。以下是苔藓生长优化算法的一些基…

如何清空回收站后在 Windows 11/10 中恢复已删除的文件

这篇文章将解释如何将已删除的文件、文件夹和其他项目从回收站还原或恢复到原始位置。有时&#xff0c;我们最终会删除重要的文件和文件夹&#xff0c;然后我们不知道如何将它们恢复到原来的位置。但是您不必担心&#xff0c;因为这篇针对初学者的帖子将详细指导您完成所有步骤…

JDK下载与IDEA环境配置

JDK下载与IDEA环境配置 前言 ​ 国庆过后新生也是正式进入小组学习了&#xff0c;我们组有一个学Java的&#xff0c;在使用IDEA时遇到了一些问题&#xff0c;输出会乱码&#xff0c;那这一看肯定是字符集出了问题&#xff0c;但是我看IDEA配置的字符集没有什么问题&#xff0…

第三版大气痕量分子光谱(ATMOS)2 级产品,包含垂直势温(θ)网格上的痕量气体

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATMOS L2 Trace Gases on Potential Temperature Grid, Tab Delimited Format V3 (ATMOSL2TT) at GES DISC 简介 这是第三版大气痕量分子光谱&#xff08;ATMOS&#xff09;2 级产品&#xff0c;包…

电阻分压电路:【图文讲解】

在电子电路中&#xff0c;电阻同样发挥着重要作用&#xff0c;同时也是一个最基本的元器件&#xff0c;电阻在电路中可以起到限流、分流、分压、发热的作用。 本节&#xff0c;我们重点来聊聊电阻的分压电路。如下图&#xff0c;是一个经典的电阻分压电路。 1&#xff1a;电路…

【AAOS】Android Automotive 15模拟器源码下载及编译

源码下载 repo init -u https://android.googlesource.com/platform/manifest -b android-10.0.0_r47 repo sync -c --no-tags --no-clone-bundle 源码编译 source build/envsetup.sh lunch aosp_car_x86_64-userdebug make -j8 运行效果 emualtor Home All apps Setting…

TDD(测试驱动开发)是否已死?

Rails 大神、创始人 David Heinemeier Hansson 曾发文抨击TDD。 TDD is dead. Long live testing. (DHH) 此后, Kent Beck、Martin Fowler、David Hansson 三人就这个观点还举行了系列对话&#xff08;辩论&#xff09; Is TDD Dead? 笔者作为一个多年在软件测试领域摸索的人&…

从秒级到小时级:TikTok等发布首篇面向长视频理解的多模态大语言模型全面综述

文章链接&#xff1a;https://arxiv.org/pdf/2409.18938 亮点直击 追踪并总结从图像理解到长视频理解的MM-LLMs的进展;回顾了各种视觉理解任务之间的差异&#xff0c;并强调了长视频理解中的挑战&#xff0c;包括更细粒度的时空细节、动态事件和长期依赖性;详细总结了MM-LLMs在…

整合 Knife4j:提升接口调试效率

整合 Knife4j&#xff1a;提升接口调试效率 Knife4j 是什么&#xff1f; Knife4j 是一个为 Java 项目生成和管理 API 文档的工具。实际上&#xff0c;它是 Swagger UI 的一个增强工具集&#xff0c;旨在让 Swagger 生成的 API 文档更优雅、更强大。 Knife4j 主要功能 美观的…

【LeetCode】动态规划—96. 不同的二叉搜索树(附完整Python/C++代码)

动态规划—96. 不同的二叉搜索树 题目描述前言基本思路1. 问题定义2. 理解问题和递推关系二叉搜索树的性质&#xff1a;核心思路&#xff1a;状态定义&#xff1a;状态转移方程&#xff1a;边界条件&#xff1a; 3. 解决方法动态规划方法&#xff1a;伪代码&#xff1a; 4. 进一…

计算机毕业设计 内蒙古旅游景点数据分析系统的设计与实现 Python毕业设计 Python毕业设计选题 Spark 大数据【附源码+安装调试】

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…