ElementUI中dialog可拖拽

更新时间:2023-05-16 22:33:10 阅读: 评论:0

ElementUI中dialog可拖拽1.utils⽂件夹下创建dialog.js⽂件
1 import Vue from 'vue'
2
3// v-dialogDrag: 弹窗拖拽
4 Vue.directive('dialogDrag', {
5  bind(el, binding, vnode, oldVnode) {
6    const dialogHeaderEl = el.querySelector('.el-dialog__header')
7    const dragDom = el.querySelector('.el-dialog')
8    dialogHeaderEl.style.cursor = 'move'
9
10// 获取原有属性 ie dom元素.currentStyle ⽕狐⾕歌 ComputedStyle(dom元素, null);
11    const sty = dragDom.currentStyle || ComputedStyle(dragDom, null)
12
郭德贤13    udown = (e) => {
14// ⿏标按下,计算当前元素距离可视区的距离
15      const disX = e.clientX - dialogHeaderEl.offtLeft
16      const disY = e.clientY - dialogHeaderEl.offtTop
17
18// 获取到的值带px 正则匹配替换
怀孕三个月流血了是怎么回事19      let styL, styT
20
21// 注意在ie中第⼀次获取到的值为组件⾃带50% 移动之后赋值为px
22if (sty.left.includes('%')) {
狼和狐狸23        styL = +document.body.clientWidth * (+place(/\%/g, '') / 100)
24        styT = +document.body.clientHeight * (+place(/\%/g, '') / 100)
25      } el {
26        styL = +place(/\px/g, '')
27        styT = +place(/\px/g, '')
28      }
29
30      umove = function(e) {
31// 通过事件委托,计算移动的距离
32        const l = e.clientX - disX
33        const t = e.clientY - disY白里透红
34
35// 移动当前元素
36        dragDom.style.left = `${l + styL}px`
37        p = `${t + styT}px`
饮茶图片大全38
39// 将此时的位置传出去
40// binding.value({x:e.pageX,y:e.pageY})
41      }
42
43      uup = function(e) {
1689年
高中诗歌鉴赏44        umove = null标语
45        uup = null
46      }
47    }
48  }
49 })
2.在main.js中全局引⽤
1 import './utils/dialog'
3.使⽤⽅法:给 el-dialog 添加 v-dialogDrag属性
1<el-dialog v-dialogDrag></el-dialog>

本文发布于:2023-05-16 22:33:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/659621.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:距离   计算   获取   移动   元素   正则
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图