写一个js方法 function movableelement 实现可以在body中自由拖动
该方法可以使用以下代码实现:
function movable(element) {
// 鼠标按下时的坐标和元素的偏移量
let startX, startY, offsetX, offsetY;
// 鼠标按下时,记录元素的初始位置和鼠标的初始位置
element.addEventListener('mousedown', function(event) {
startX = event.pageX;
startY = event.pageY;
offsetX = element.offsetLeft;
offsetY = element.offsetTop;
});
// 鼠标移动时,计算元素应该移动的位置
document.addEventListener('mousemove', function(event) {
if (startX !== undefined && startY !== undefined) {
let x = event.pageX - startX + offsetX;
let y = event.pageY - startY + offsetY;
element.style.left = x + 'px';
element.style.top = y + 'px';
}
});
// 鼠标松开时,清除记录的值
document.addEventListener('mouseup', function(event) {
startX = undefined;
startY = undefined;
});
}
该方法会将传入的元素绑定鼠标按下、移动和松开事件,实现拖动效果。需要注意的是,拖动只是改变元素的位置,不会改变元素的大小,因此需要确保元素具有相对或绝对定位
原文地址: https://www.cveoy.top/t/topic/fGAQ 著作权归作者所有。请勿转载和采集!