js根据鼠标移动来改变div的移动
时间: 2023-09-29 11:09:52 浏览: 115
jQuery实现div跟随鼠标移动
可以通过监听鼠标移动事件来实现改变div的移动。具体方式如下:
1. 获取待移动的div元素,并设置其初始位置。
2. 监听鼠标移动事件,获取鼠标相对于文档的坐标,计算出待移动的div元素应该移动到的位置。
3. 使用CSS3的transform属性来改变div元素的位置,实现平滑的移动效果。
下面是一个简单的实现示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>Move Div with Mouse</title>
<style>
#moveDiv {
position: absolute;
top: 100px;
left: 100px;
width: 100px;
height: 100px;
background-color: red;
transition: transform 0.2s ease-out;
}
</style>
</head>
<body>
<div id="moveDiv"></div>
<script>
var moveDiv = document.getElementById('moveDiv');
var startX, startY, offsetX, offsetY;
moveDiv.addEventListener('mousedown', function(event) {
startX = event.pageX;
startY = event.pageY;
offsetX = moveDiv.offsetLeft;
offsetY = moveDiv.offsetTop;
document.addEventListener('mousemove', moveHandler);
});
document.addEventListener('mouseup', function(event) {
document.removeEventListener('mousemove', moveHandler);
});
function moveHandler(event) {
var moveX = event.pageX - startX;
var moveY = event.pageY - startY;
moveDiv.style.transform = 'translate(' + (offsetX + moveX) + 'px, ' + (offsetY + moveY) + 'px)';
}
</script>
</body>
</html>
```
这个示例中,我们监听了moveDiv元素的mousedown事件,并在事件处理函数中记录了鼠标点击时的坐标和div元素的初始位置。然后,我们在document上监听了mousemove和mouseup事件,分别在mousemove事件处理函数中计算出鼠标相对于初始位置的偏移量,并使用translate()函数来改变div元素的位置。mouseup事件处理函数用于取消mousemove事件的监听。
阅读全文