图片随着鼠标移动是一种常见的网页交互效果,通常通过JavaScript来实现。这种效果可以让用户在浏览网页时获得更加动态和直观的体验。
以下是一个简单的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>
const img = document.getElementById('followImage');
document.addEventListener('mousemove', (event) => {
img.style.left = event.clientX + 'px';
img.style.top = event.clientY + 'px';
});
</script>
</body>
</html>
问题1:图片移动过于敏感
requestAnimationFrame
来优化动画效果,减少不必要的重绘。let x = 0, y = 0;
const img = document.getElementById('followImage');
document.addEventListener('mousemove', (event) => {
x = event.clientX;
y = event.clientY;
});
function animate() {
img.style.left = x + 'px';
img.style.top = y + 'px';
requestAnimationFrame(animate);
}
animate();
问题2:图片超出视口边界
document.addEventListener('mousemove', (event) => {
let newX = event.clientX;
let 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元无门槛券
手把手带您无忧上云