HTML:

<div id="draggable">Drag me!</div>

JavaScript:

var draggable = document.getElementById('draggable');

draggable.addEventListener('mousedown', function(e) {
    var offsetX = e.clientX - draggable.offsetLeft;
    var offsetY = e.clientY - draggable.offsetTop;

    document.addEventListener('mousemove', moveHandler);
    document.addEventListener('mouseup', upHandler);

    function moveHandler(e) {
        draggable.style.left = (e.clientX - offsetX) + 'px';
        draggable.style.top = (e.clientY - offsetY) + 'px';
    }

    function upHandler() {
        document.removeEventListener('mousemove', moveHandler);
        document.removeEventListener('mouseup', upHandler);
    }
});

上面的代码实现了一个基本的拖拽功能。当鼠标按下时,计算鼠标相对于可拖拽元素的偏移量,并在文档上添加mousemove和mouseup事件的监听器。当鼠标移动时,根据鼠标位置和偏移量设置元素的left和top位置。当鼠标释放时,从文档上移除监听器。


原文地址: https://www.cveoy.top/t/topic/zyH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录