弹层-自定义拖拽指令

2023年1月24日10:27:49

自己写的拖拽指令,虽然代码不是很好,留着以后用,万一遇到了就不用重新写了 哈哈

封装的弹层

export default {
// 渲染绑定
  bind(el, binding) {
    // 弹窗的容器
    const domDrag = el;
    // 绑定头部可以拖动
    const headDom = el.querySelector('.dialog-header')
    // 因为本项目用在3840*1080大屏上面  弹窗的所在位置写死了 根据个人项目自己调整
// binding.value.width  binding.value.height  这是设置的弹窗大小

    domDrag.style.left = domDrag.style.left != '0px' ? domDrag.style.left : (3840 - binding.value.width) / 2 + 'px';
    domDrag.style.top = domDrag.style.top != '0px' ? domDrag.style.top : (1200 - binding.value.height) / 2 + 'px';
    
    // 鼠标按下,开始拖拽
    headDom.onmousedown = (e) => {
      domDrag.style.cursor = 'move'// 改变光标形状
      let clientX = e.clientX;
      let clientY = e.clientY;
      let disX = e.clientX - e.offsetX;
      let disY = e.clientY - e.offsetY;
      document.onmousemove = function (e) {
        let x = e.clientX - clientX;
        let y = e.clientY - clientY;
        if ($(domDrag)[0].offsetLeft + x < 20) {
          return
        }
        domDrag.style.left = $(domDrag)[0].offsetLeft + x + 'px';
        clientX = e.clientX;
        if ($(domDrag)[0].offsetTop + y < 20) {
          return;
        }
        domDrag.style.top = $(domDrag)[0].offsetTop + y + 'px';
        clientY = e.clientY;
      }
      document.onmouseup = function (e) {
        domDrag.style.cursor = ''// 改变光标形状
        document.onmousemove = null;
        document.onmouseup = null;
      }
    }
  }
}

  • 作者:not exists
  • 原文链接:https://blog.csdn.net/weixin_46253839/article/details/126014632
    更新时间:2023年1月24日10:27:49 ,共 1030 字。