在JavaScript中实现图片跟随鼠标移动的功能,主要涉及到HTML、CSS和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>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<img id="followImage" src="path/to/your/image.jpg" alt="Follow Me">
<script src="script.js"></script>
</body>
</html>
body {
margin: 0;
overflow: hidden;
}
#followImage {
position: absolute;
width: 50px;
height: 50px;
}
document.addEventListener('DOMContentLoaded', (event) => {
const image = document.getElementById('followImage');
document.addEventListener('mousemove', (e) => {
image.style.left = e.clientX + 'px';
image.style.top = e.clientY + 'px';
});
});
requestAnimationFrame
优化动画效果,减少不必要的重绘。let x = 0, y = 0;
const image = document.getElementById('followImage');
document.addEventListener('mousemove', (e) => {
x = e.clientX;
y = e.clientY;
});
function animate() {
image.style.left = x + 'px';
image.style.top = y + 'px';
requestAnimationFrame(animate);
}
animate();
document.addEventListener('mousemove', (e) => {
let newX = e.clientX;
let newY = e.clientY;
if (newX < 0) newX = 0;
if (newY < 0) newY = 0;
if (newX > window.innerWidth - image.offsetWidth) newX = window.innerWidth - image.offsetWidth;
if (newY > window.innerHeight - image.offsetHeight) newY = window.innerHeight - image.offsetHeight;
image.style.left = newX + 'px';
image.style.top = newY + 'px';
});
通过以上步骤和代码示例,你可以轻松实现图片跟随鼠标移动的功能,并处理常见的性能和边界问题。
领取专属 10元无门槛券
手把手带您无忧上云