vue 拖拽通过子元素拖拽父元素指令

vue 拖拽通过子元素拖拽父元素指令

需求 拖拽头部 拖动整个框
在这里插入图片描述

// candrag.js中的代码如下 directive
// 通过子元素 控制移动父元素,  如果 需要直接控制父元素可以再写一个自定义指令 或者改造下这个指令
export default {
  // 定义 Vue 插件
  install(Vue) {
    Vue.directive('candrag', {
      // 全局指令名为 v-candrag
      inserted(el) {
        el.onmousedown = function(ev) {
          // 获取鼠标按下时的偏移量(鼠标位置 - 元素位置)
          const disX = ev.clientX - el.parentNode.offsetLeft
          const disY = ev.clientY - el.parentNode.offsetTop
          document.onmousemove = function(ev) {
            // 获取鼠标实时移动时,元素的位置(鼠标实时位置 - 偏移量)
            const l = ev.clientX - disX
            const t = ev.clientY - disY
            // 实时设置元素位置
            el.parentNode.style.left = l + 'px'
            el.parentNode.style.top = t + 'px'
          }
          document.onmouseup = function() {
            // 鼠标抬起时,销毁移动事件和鼠标抬起事件
            document.onmousemove = null
            document.onmouseup = null
          }
        }
      }
    })
  }
}

使用

main.js
import candrag from '@/directive/candrag'
Vue.use(candrag)

使用的地方
<div>
	<div v-candrag></div>
	<div></div>
</div>

相关推荐

  1. React 元素教程 react-dnd 实现

    2023-12-31 11:06:02       37 阅读
  2. js实现元素方法

    2023-12-31 11:06:02       47 阅读
  3. canvas中实现画布内元素(下)

    2023-12-31 11:06:02       50 阅读
  4. vue3 实现一个自定义指令

    2023-12-31 11:06:02       18 阅读
  5. 基于Vue.js 实现简易指令

    2023-12-31 11:06:02       15 阅读
  6. Vue——vue3库Sortablejs

    2023-12-31 11:06:02       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-31 11:06:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-31 11:06:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-31 11:06:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-31 11:06:02       20 阅读

热门阅读

  1. 1830_emacs lisp的交互式模式

    2023-12-31 11:06:02       45 阅读
  2. OD机考真题搜集:仿 LISP 运算

    2023-12-31 11:06:02       43 阅读
  3. mysql哪些情况下不走索引?

    2023-12-31 11:06:02       41 阅读
  4. Mybatis 动态 SQL - trim, where, set

    2023-12-31 11:06:02       42 阅读
  5. React

    2023-12-31 11:06:02       38 阅读
  6. C语言中的goto语句:使用、争议与最佳实践

    2023-12-31 11:06:02       34 阅读
  7. 理解ubuntu的apt-get

    2023-12-31 11:06:02       33 阅读
  8. Chocolatey

    2023-12-31 11:06:02       32 阅读