【VUE】拖拽自定义指令

gengboxb 523 0

main.js添加

Vue.directive('drag', {
  bind (el) {
    var oDiv = el
    oDiv.onmousedown = function (ev) {
      var disX = ev.clientX - oDiv.offsetLeft
      var disY = ev.clientY - oDiv.offsetTop
      ev.preventDefault()
      document.onmousemove = function (ev) {
        var l = ev.clientX - disX
        var t = ev.clientY - disY
        oDiv.style.left = l + 'px'
        oDiv.style.top = t + 'px'
      }
      document.onmouseup = function () {
        document.onmousemove = null
        document.onmouseup = null
      }
    }
  }
})

使用

<div v-drag :style="{width:'100px', height:'100px', background:'red', position:'absolute', right:0, top:0}"></div>

发表评论 取消回复
表情 图片 链接 代码

分享