该方法可以使用以下代码实现:

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;
  });
}

该方法会将传入的元素绑定鼠标按下、移动和松开事件,实现拖动效果。需要注意的是,拖动只是改变元素的位置,不会改变元素的大小,因此需要确保元素具有相对或绝对定位

写一个js方法 function movableelement 实现可以在body中自由拖动

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

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