console
document.addEventListener('DOMContentLoaded', function() {
const dragArea = document.getElementById('dragArea');
let isDragging = false;
let startX, startY;
// 鼠标按下时
dragArea.addEventListener('mousedown', function(e) {
if (e.button === 0) { // 检查是否为鼠标左键
isDragging = true;
startX = e.clientX;
startY = e.clientY;
// 改变鼠标样式
dragArea.style.cursor = 'grab';
}
});
// 鼠标移动时
dragArea.addEventListener('mousemove', function(e) {
if (isDragging) {
// 改变鼠标样式
dragArea.style.cursor = 'grabbing';
const deltaX = e.clientX - startX;
const deltaY = e.clientY - startY;
let top = parseFloat(dragArea.style.top) || 0
let left = parseFloat(dragArea.style.left) || 0
top += deltaY
left += deltaX
console.log('top',top)
dragArea.style.top = `${top}px`
dragArea.style.left = `${left}px`
// 打印移动距离
console.log(`Moved ${deltaX}px horizontally and ${deltaY}px vertically`);
// 更新起始位置
startX = e.clientX;
startY = e.clientY;
}
});
// 鼠标释放时
dragArea.addEventListener('mouseup', function() {
if (isDragging) {
isDragging = false;
// 恢复默认鼠标样式
dragArea.style.cursor = 'default';
}
});
// 当鼠标离开拖动区域时
dragArea.addEventListener('mouseleave', function() {
isDragging = false;
dragArea.style.cursor = 'default';
});
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Drag Area</title>
<style>
#dragArea {
width: 300px;
height: 200px;
background-color: lightblue;
position: relative;
}
</style>
</head>
<body>
<div id="dragArea"></div>
<script src="script.js"></script>
</body>
</html>
#dragArea{
position: fixed;
left:0;
top:20px;
}