el-dialog侧边弹窗可横向拖拽改变宽度,并且存储到localStorage,刷新页面后依然是拖拽后的宽度

Vue.directive('dialogDrag', {inserted: function (el) {const dragDom = el.querySelector(".el-dialog");dragDom.style.cursor = "e-resize";const dialogHeader = el.querySelector('.el-dialog__header');dialogHeader.style.cursor = "auto";// 存储的宽度,需要id存储let dialogWidth = localStorage.getItem('dialogWidth') let dialogWidthObj = {}if(dialogWidth && el.id) {dialogWidthObj = JSON.parse(dialogWidth)const sw = dialogWidthObj[el.id]if(sw) {dragDom.style.width = `${sw}px`}}dragDom.onmousedown = (e) => {// 鼠标按下,计算当前元素距离可视区的距离const disX = e.clientXconst w = dragDom.clientWidthconst minW = 300const maxW = document.body.clientWidthvar nwdocument.onmousemove = function(e) {// 通过事件委托,计算移动的距离const l = e.clientX - disX// 改变当前元素宽度,不可超过最小最大值nw = w - lnw = nw < minW ? minW : nwnw = nw > maxW ? maxW : nwdragDom.style.width = `${nw}px`if(el.id) {dialogWidthObj[el.id] = nwlocalStorage.setItem('dialogWidth',JSON.stringify(dialogWidthObj)) }}document.onmouseup = function(e) {document.onmousemove = nulldocument.onmouseup = null}}},update: function (el) {const dialogBody = el.querySelector('.el-dialog__body');if(dialogBody) {dialogBody.style.margin = "0 20px";dialogBody.style.padding = "30px 0";dialogBody.style.cursor = "auto";}}
});

使用:在el-dialog 组件中绑定 v-dialogDrag 指令

<el-dialogv-dialogDragid="addRoleDialog":before-close="handleClose":visible="dialogVisible"append-to-bodytitle="添加角色"width="28%"
>
//.......
</el-dialog>

在这里插入图片描述

element-ui el-dialog侧边弹窗可横向拖拽改变宽度相关推荐

  1. element vue 点击一边拖拽改变宽度 解决拖动会选中文字的问题

    实现效果: 实现代码: //最外边的这个是放表格容器的div <div @mousemove="shrinkMove" @mouseup="shrinkUp&quo ...

  2. JQuery Dialog(JS模态窗口,可拖拽的DIV)

    JQuery Dialog(JS模态窗口,可拖拽的DIV) 吴剑 2012-08-08 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 效果图 调用示意图 ...

  3. 自定义v-drag指令(横向拖拽滚动)

    指令 Vue.directive('drag', {// 钩子函数,被绑定元素插入父节点时调用 (父节点存在即可调用,不必存在于 document 中).inserted: (el, binding, ...

  4. element ui中dialog相关问题

    一,今天需要在dialog里面引入另一个页面,就是打开dialog显示该页面(把页面放到dialog中),引入的语句如下: <iframe src="view?path=rkdj_b& ...

  5. element ui里dialog关闭后清除验证条件

    //vue<!--添加用户dialog begin--><el-dialog title="编辑用户" :visible.sync="dialogFor ...

  6. element ui 组件vue组件使用slot-scope=“scop“根据ID改变地址

    <template><!-- <div>权限列表</div> --><div><el-table :data="tableD ...

  7. jquery.ui.draggable中文文档jquery 自由拖拽类~study~

    为什么80%的码农都做不了架构师?>>>    JQuery UI Draggable插件用来使选中的元素可以通过鼠标拖动. Draggable的元素受影响css: ui-dragg ...

  8. iview 自定义指令实现Table左右横向拖拽

    有时候表格内容会很多,需要横向滚动查看右边的内容,又不想到底部拖动滚动条,如果能直接在内容中拖动就好了,这个时候就可以用 vue 的自定义指令来实现了. 为了以后扩展指令方便,创建 directive ...

  9. 【Android】HorizontalScrollView内子控件横向拖拽

    前言 网上ListView上下拖动的例子有,效果也很好,但是项目要横着拖的,只要硬着头皮自己写(主要是没找到合适的),参考文章1修改而来,分享一下. 声明 欢迎转载,但请保留文章原始出处:)  博客园 ...

最新文章

  1. 看我如何下载韩寒博客文章笔记
  2. Attention机制总结 看明白了的
  3. 【SSM框架系列】Spring-MVC的组件解析
  4. QT的QPair类的使用
  5. Dart的HTTP请求和响应(1)
  6. PageHelper概述与基本使用步骤介绍
  7. 如何用WebIDE打开并运行CRM Fiori应用
  8. c++读取文件–结束条件的判断
  9. 云片短信php接口_php与阿里云短信接口接入
  10. Flutter进度条Flutter圆形进度条Flutter条形进度条Flutter Progress进度条LinearProgressIndicator
  11. php hook 键盘,Windows C++ 键盘钩子
  12. Python深度学习三剑客,你集齐了吗?
  13. 明月镜片在创业板上市:镜片贡献八成收入,系谢公晚家族企业
  14. toshiba 共享文件夹_东芝打印机如何共享
  15. 基于Echarts的数据可视化大屏系统设计分享
  16. 我在字节跳动「修电影」
  17. python编写模拟硬币投掷_python实现简单随机模拟——抛呀抛硬币
  18. 巧妙去掉多余的安全删除硬件图标
  19. CSS3 画皮卡丘
  20. python第五章总结

热门文章

  1. 局部二值模式LBP的详细理解
  2. 《Android开发从零开始》——3.第一个Android程序
  3. modx注册码_MODX:您从未使用过的最佳CMS?
  4. 如何在ipone自带邮件上添加网易邮箱
  5. 芙拉机器人_【诉说实情】芙拉2020新品女士小号斜挎包心形印花怎么样?别花冤枉钱,内幕大揭秘 | 智能扫地机器人评测...
  6. ## 看看sass和less会遇到的问题吧
  7. 蓝牙协议spec文档免费下载官网下载(免费)
  8. 被骗进一个很隐蔽的外包公司,入职一个月才发现,已经有了社保记录,简历污了,以后面试有影响吗?...
  9. leo-editor 关于 flutter 企业级路由 fluro 官方例子文学化编程分析
  10. C和C++混合编程(error C2059: syntax error : 'string')