vue中通过自定义指令实现拖拽功能

今天我们来做一个用vue的自定义指令来实现拖拽功能,首先来看图

下面来进行详细的教程: 上面这张图是我们所需要用到的三个鼠标事件

使用自定义指令 v-drag

<template>
  <div v-drag class="w">hello vue!</div>
</template>
<!--一定不要忘记在css中添加 position: absolute;-->

在script中注册自定义指令

// 使用directives注册v-focus指令
  directives: {
          
   
    drag: {
          
   
      inserted(el) {
          
   
        el.onmousedown = (e) => {
          
   
          let x = e.clientX - el.offsetLeft;
          let y = e.clientY - el.offsetTop;
          document.onmousemove = (e) => {
          
   
            let xx = e.clientX - x + "px";
            let yy = e.clientY - y + "px";
            el.style.left = xx;
            el.style.top = yy;
          };
          el.onmouseup = (e) => {
          
   
            document.onmousemove = null;
          };
        };
      },
    },
    mounted() {
          
   },

    methods: {
          
   },
  },

就这么简单,搞定,收工

经验分享 程序员 微信小程序 职场和发展