结合vue自定义指令实现元素拖拽

vue自定义指令:https://v2.cn.vuejs.org/v2/guide/custom-directive.html

 1、在main.js注册全局自定义指令

复制代码
Vue.directive('drag', {
    // 当被绑定的元素插入到 DOM 中时……
    inserted: function (el) {
        el.onmousedown = function (e) {
         var disx = e.pageX - el.offsetLeft //获取鼠标相对元素距离
         var disy = e.pageY - el.offsetTop
 
         document.onmousemove = function (e) {
            //鼠标移动触发事件,元素移到对应为位置
            el.style.left = e.pageX - disx + 'px'
            el.style.top = e.pageY - disy + 'px'
         }
         document.onmouseup = function () {
            //鼠标抬起,清除绑定的事件,元素放置在对应的位置
            document.onmousemove = null
            document.onmousedown = null
         }
          e.preventDefault() //阻止浏览器的默认事件
      }
    }
})
复制代码

 2、使用

 

posted @   Stitchhhhh  阅读(268)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示