2022-08-05 05:56:59
实现悬浮窗拖拽的4行核心代码(基础版):
element.addEventListener('mousedown', (e) => { const { offsetX, offsetY } = e; const onMouseMove = (e) => { element.style.transform = `translate(${e.clientX - offsetX}px, ${e.clientY - offsetY}px)`; }; document.addEventListener('mousemove', onMouseMove); document.addEventListener('mouseup', () => document.removeEventListener('mousemove', onMouseMove), { once: true });});完整实现方案(含优化与扩展功能)1. 基础拖拽实现mousedown时记录初始偏移量(offsetX/Y)。
mousemove时通过transform: translate()更新元素位置,避免直接操作left/top导致的重绘。
mouseup时移除mousemove监听,防止内存泄漏。
