有时候左侧菜单项名称太长导致会出现滚动条或者不用滚动条,直接加title.,体验不太好,想增加一个手动拖动拉伸收收缩的功能

目录

  • slidebar增加拖拽点
  • 增加动态style
  • 增加计算属性barWidth
  • 监听拖拽点

slidebar增加拖拽点

增加idsplit-panel的布局。且设置isCollapsetrue的时候,即只有打开的时候才可以进行拖拽

split-panel样式:

#split-panel {cursor: col-resize;height: 100%;width: 5px;position: absolute;top: 0;right: 0;
}

增加split-panel

<template><div :class="{ 'has-logo': showLogo }"><logo v-if="showLogo" :collapse="isCollapse" /><el-scrollbar wrap-class="scrollbar-wrapper"><el-menu:default-active="activeMenu":collapse="isCollapse":background-color="variables.menuBg":text-color="variables.menuText":unique-opened="false":active-text-color="variables.menuActiveText":collapse-transition="false"mode="vertical"><sidebar-itemv-for="route in permission_routes":key="route.path":item="route":base-path="route.path"/></el-menu></el-scrollbar><!-- 拖拽点 --><div v-show="!isCollapse" id="split-panel"></div></div>
</template>

增加动态style

<sidebar class="sidebar-container" :style="{ width: barWidth }" />
<div:class="[hasTagsView ? 'hasTagsView' : 'noTagsView']"class="main-container":style="{ 'margin-left': barWidth }">// app-main...省略</div>

增加计算属性barWidth

computed:{barWidth() {if (!this.sidebar.opened) {//关闭时,右侧内容主题left设置为默认的54return '54px'} else {return `${this.sideBarDefaultWidth}px`}}
}

监听拖拽点

 moveSlideBar: function() {let _this = thislet splitPanel = document.getElementById('split-panel')splitPanel.onmousedown = function(e) {splitPanel.style.background = '#409eff'let startX = e.clientXdocument.onmousemove = function(e) {let endX = e.clientXlet moveLen = startX - endXstartX = endX// 设置拖动幅度_this.sideBarDefaultWidth -= moveLen}document.onmouseup = function() {// 重置sliptesplitPanel.style.background = ''document.onmousemove = nulldocument.onmouseup = null}return false}}

千里之行
始于足下

vue-element-admin 左侧菜单增加可拉伸收缩相关推荐

  1. vue element html左侧菜单,vue生成element左侧菜单

    首先来总结element ui 官方文档的左侧菜单结构,带有el-submenu为子级节点,el-menu-item表示没有下级.当然,菜单不能写死,因为菜单也许不止两级,所以我们需要递归来实现.根据 ...

  2. Vue Element Admin 使用mock模块模拟数据

    Mock 数据是前端开发过程中必不可少的一环,是分离前后端开发的关键链路.通过预先跟服务器端约定好的接口,模拟请求数据甚至逻辑,能够让前端开发更加独立自主,不会被服务端的开发所阻塞. vue-elem ...

  3. vue+element+admin(初始化项目)

    2022.10.17我接触到了vue+element+admin的使用,首先要安装node.jshttps://nodejs.org/zh-cn/download/.和githttps://git-s ...

  4. vue element admin登录方式切换(密码登录或短信登录)

    显示结果: 具体代码可以根据vue element admin源码进行更改,下面是页面代码 <el-form ref="loginForm" :model="log ...

  5. vue首页导航+左侧菜单

    目录 1. Mock.js:是什么? 2. Mock.js使用步骤 3.  后台首页AppMain.vue的创建 1. Mock.js:是什么? 1,前后端分离之后,前端迫切需要一种机制,不再需要依赖 ...

  6. vue + element 顶部二级菜单_揭秘vue/react组件库中5个quot;作者不造的轮子quot;

    点击上方"前端公虾米"关注最新前端资讯 来源: 铁皮饭盒https://juejin.im/post/5d89cd156fb9a06acb3ee19e ? 这五个轮子其实是5个纯j ...

  7. 基于vue+element实现多级菜单动态生成

    使用element的NavMenu组件+vue的组件递归实现动态生成菜单. 首先创建对象记录菜单的标题.链接.子集等信息. menus: [{title: "首页",icon: & ...

  8. 后端使用SpringBoot和Jwt工具与Redis数据库+前端Vue Element Admin实现用户携带token的登录功能案例

    登录功能描述: 前端输入对应的用户信息 ,在用户输入邮箱后 点击发送按钮给邮箱发送验证码,拿取到验证填完之后,点击登录按钮给后端发送请求 ,后端接收到请求之后 ,第一步校验验证码,第二步校验用户名和密 ...

  9. Vue Element Admin 添加侧边栏以及他的页面

    1. 在 /src/views/ 下添加需要的页面 2. 配置路由器 router 中的路由表 routes,分为 constantRoutes 和 asyncRoutes. 将路由的配置信息添加进路 ...

最新文章

  1. 机器人进攻民用市场:踏实做好小优美
  2. easyui的Pagination单独使用
  3. 自定义控件:下拉刷新
  4. 笔记-项目进度管理-精简
  5. (LeetCode 141/142)Linked List Cycle
  6. 改进协议 BIP32-39-44概述
  7. 转移 AD Time Server
  8. 如何查看Tomcat版本信息
  9. Aspose word pdf 相互转换
  10. 投资组合分析的 GE McKinsey 矩阵
  11. 英语从句(英语兔学习笔记)
  12. 免费web服务器Tomcat
  13. ios 扫码枪外设 键盘模式_iPadOS 显威力,苹果 iPad Pro 终于用上带触控板的外接键盘...
  14. Oracle 存储过程 字符串拼接 SQL注入的问题
  15. sentos7查看网络配置_怎么查看centos7的网络配置
  16. 蓝牙心率检测仪涉及到的主要硬件组成
  17. 【渝粤题库】广东开放大学 文化投资与贸易 形成性考核 (2)
  18. 大数据智能分析(BI)平台设计2--数据集
  19. 视频版权,JavaScript阻止360浏览器
  20. 光脚丫学LINQ(006):投影

热门文章

  1. Python 海龟绘图 100 题——第 14 题
  2. 饥荒steam服务器文档,Steam饥荒专用服务器搭建
  3. 继豪中考体质测试系统软件,肺活量测试仪
  4. RISC-V各种资料,书书籍,paper等等整理收集
  5. windows安装数据库
  6. 常用的渗透测试工具总结
  7. java 简易版本数据库连接池
  8. android手电筒原理
  9. Dropbox电面面经
  10. 传奇人物《周兴和》书连载26 猫与老鼠的游戏