图片跟随鼠标是一种常见的前端交互效果,通过JavaScript监听鼠标的移动事件,并实时更新图片的位置,使其跟随鼠标指针移动。
mousemove
事件来获取鼠标的当前位置。left
和top
样式属性。以下是一个简单的JavaScript实现,展示了如何让图片跟随鼠标移动:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Image Follow Mouse</title>
<style>
#followImage {
position: absolute;
width: 50px;
height: 50px;
}
</style>
</head>
<body>
<img id="followImage" src="path_to_your_image.jpg" alt="Follow Me">
<script>
// 获取图片元素
var img = document.getElementById('followImage');
// 监听鼠标移动事件
document.addEventListener('mousemove', function(event) {
// 更新图片位置
img.style.left = event.clientX + 'px';
img.style.top = event.clientY + 'px';
});
</script>
</body>
</html>
requestAnimationFrame
来优化动画效果,减少重绘次数。var x = 0, y = 0;
var img = document.getElementById('followImage');
document.addEventListener('mousemove', function(event) {
x = event.clientX;
y = event.clientY;
});
function animate() {
img.style.left = x + 'px';
img.style.top = y + 'px';
requestAnimationFrame(animate);
}
animate();
document.addEventListener('mousemove', function(event) {
var newX = event.clientX;
var newY = event.clientY;
// 边界检查
if (newX < 0) newX = 0;
if (newY < 0) newY = 0;
if (newX > window.innerWidth - img.offsetWidth) newX = window.innerWidth - img.offsetWidth;
if (newY > window.innerHeight - img.offsetHeight) newY = window.innerHeight - img.offsetHeight;
img.style.left = newX + 'px';
img.style.top = newY + 'px';
});
通过以上方法,可以有效实现图片跟随鼠标的效果,并解决可能出现的性能和边界问题。
领取专属 10元无门槛券
手把手带您无忧上云