export default {
beforeMount(el) {
el.style.position = 'absolute';
},
mounted(el) {
let isDragging = false;
let currentX, currentY, initialX, initialY;
const onMouseDown = (e) => {
initialX = e.clientX - el.offsetLeft;
initialY = e.clientY - el.offsetTop;
isDragging = true;
};
const onMouseMove = (e) => {
if (isDragging) {
e.preventDefault();
currentX = e.clientX - initialX;
currentY = e.clientY - initialY;
el.style.left = `${currentX}px`;
el.style.top = `${currentY}px`;
}
};
const onMouseUp = () => {
isDragging = false;
};
el.addEventListener('mousedown', onMouseDown);
document.addEventListener('mousemove', onMouseMove);
document.addEventListener('mouseup', onMouseUp);
},
beforeUnmount(el) {
el.removeEventListener('mousedown', onMouseDown);
document.removeEventListener('mousemove', onMouseMove);
document.removeEventListener('mouseup', onMouseUp);
},
}
2、