vue自定义拖拽指令

drag.js

import Vue from 'vue'

const drag=Vue.directive('drag',{

  bind:function(el){

    // 一般指针只有放在窗口的顶部才能拖动整个窗口,使用时在组件的顶部设置一个类名为dragHeader的元素

    let dragHeader=el.querySelector(".dragHeader");

    // 指针样式

    dragHeader.style.cursor="move";

    dragHeader.onmousedown=(e)=>{

      var disx=e.pageX-el.offsetLeft;

      var disy=e.pageY-el.offsetTop;

      document.onmousemove=function(){

        el.style.left=e.pageX-disx+'px';

        el.style.top=e.pageY-disy+'px';

      }

      document.onmouseup=function(){

        document.onmousemove=null;

        document.onmouseup=null;

      }

    }    

  }

})

export default drag;

 

 

使用示例

A.vue

<template>

  <div v-drag>

    <div class="dragHeader"></div>

    <div>....................</div>

  </div>

</template>

posted @   墨丶尘  阅读(437)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示