当前位置: 首页 > news >正文

【Element-UI】实现el-drawer抽屉的左右拖拽宽度

对Element-UI的el-drawer抽屉控件实现拖拽功能。
1、新增drawer-drag.js

import Vue from 'vue'Vue.directive('drawerDrag', {bind(el, binding, vnode, oldVnode) {const minWidth = 400const dragDom = el.querySelector('.el-drawer')dragDom.style.overflow = 'auto'const resizeElL = document.createElement('div')const img = new Image(24, 38)//拖拽图标,不需要可去除//img.src = require('@/assets/images/portal_2.png')//dragDom.appendChild(img)dragDom.appendChild(resizeElL)resizeElL.style.cursor = 'w-resize'resizeElL.style.position = 'absolute'resizeElL.style.height = '100%'resizeElL.style.width = '10px'resizeElL.style.left = '0px'resizeElL.style.top = '0px'//img.style.position = 'absolute'//img.style.left = '-12px'//img.style.top = '50%'resizeElL.onmousedown = (e) => {const elW = dragDom.clientWidthconst EloffsetLeft = dragDom.offsetLeftconst clientX = e.clientXdocument.onmousemove = function(e) {e.preventDefault()// 左侧鼠标拖拽位置if (clientX > EloffsetLeft && clientX < EloffsetLeft + 10) {// 往左拖拽if (clientX > e.clientX) {dragDom.style.width = elW + (clientX - e.clientX) + 'px'}// 往右拖拽if (clientX < e.clientX) {if (dragDom.clientWidth >= minWidth) {dragDom.style.width = elW - (e.clientX - clientX) + 'px'}}}}// 拉伸结束document.onmouseup = function(e) {document.onmousemove = nulldocument.onmouseup = null}}}
})

2、引入drawer-drag.js并且使用
引入js:

import '@/utils/drawer-drag'

在el-drawer加入v-drawerDrag使用

 <el-drawerv-drawerDrag
</el-drawer>

实现来源:
1、https://www.cnblogs.com/younghxp/p/17539907.html
2、https://www.jianshu.com/p/5b250e7f94f3

相关文章:

  • Docker torchserve workflow部署流程
  • 数据文件(0)
  • excel快速入门(二)
  • Windows C++:MoveFile、MoveFileEx、MoveFileWithProgress、CopyFile、CopyFileEx。
  • S32K312 RTD 4.0.0 版本 OCU 例程配置流程说明
  • Linux centerOS 服务器搭建NTP服务
  • Android Glide(一):源码分析,内存缓存和磁盘缓存的分析,实现流程以及生命周期
  • SCAU学习笔记 - 面向对象程序设计课后习题
  • hive如何删除分区
  • “避开死锁泥潭:开发者必知的技巧与工具“
  • 提升SAP归档效率的5个实用技巧
  • 智慧城市交通管理中的云端多车调度与控制
  • uniapp数据缓存
  • C#源码安装ZedGraph组件,并且立即演示使用
  • GIS在构建虚拟世界中的新机遇
  • const let
  • ECS应用管理最佳实践
  • Java 最常见的 200+ 面试题:面试必备
  • mysql_config not found
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • springMvc学习笔记(2)
  • sublime配置文件
  • uni-app项目数字滚动
  • 读懂package.json -- 依赖管理
  • 和 || 运算
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 如何解决微信端直接跳WAP端
  • 译自由幺半群
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 带你开发类似Pokemon Go的AR游戏
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ​字​节​一​面​
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • ## 1.3.Git命令
  • #162 (Div. 2)
  • (3)nginx 配置(nginx.conf)
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • 、写入Shellcode到注册表上线
  • .CSS-hover 的解释
  • .Net Core 笔试1
  • .net core控制台应用程序初识
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .so文件(linux系统)
  • //usr/lib/libgdal.so.20:对‘sqlite3_column_table_name’未定义的引用
  • @取消转义
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [ajaxupload] - 上传文件同时附件参数值
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [C#]C#学习笔记-CIL和动态程序集
  • [c++进阶(九)] STL之deque深度剖析
  • [codeforces] 25E Test || hash
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意