实现效果

实现步骤
- 新建一个 drag.js 注册拖拽指令
import Vue from 'vue';
const drag = Vue.directive('drag', {
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';
console.log(el.style.left)
console.log(el.style.top)
}
document.onmouseup = function () {
document.onmousemove = document.onmouseup = null;
}
}
},
})
export default drag;
- main.js 进行引入
import drag from './utils/drag.js';
- 调用,需要拖拽的div记得加定位
<template>
<div class="moveWithMouse">
<h3>拖拽 div </h3>
<div class="dragContent" v-drag>拖动div</div>
</div>
</template>
<style scoped>
.moveWithMouse {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.dragContent{
position: absolute;
top: 100px;
width: 300px;
height: 300px;
background: pink;
line-height: 300px;
text-align: center;
margin-top: 30px;
}
</style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具