用原生,实现JavaScript的拖拽
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 著作权归作者所有。请勿转载和采集!