拖拽封装

写在 main.js 里

// 注册全局directive - drag,移动元素块(目标元素需使用绝对定位或者固定定位), 使用: v-drag
Vue.directive('drag', {
  inserted(el, binding) {
    let dragBox = el
    dragBox.onmousedown = e => {
      let disX = e.clientX - dragBox.offsetLeft
      let disY = e.clientY - dragBox.offsetTop
      document.onmousemove = e => {
        let left = e.clientX - disX
        let top = e.clientY - disY
        dragBox.style.left = left + 'px'
        dragBox.style.top = top + 'px'
      }
      document.onmouseup = e => {
        document.onmousemove = null
        document.onmouseup = null
      }
    }
  }
})

使用

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容