js实现运动
使用 JavaScript 实现运动
在 JavaScript 中实现运动效果可以通过多种方式完成,包括使用 CSS 动画、requestAnimationFrame、定时器(setTimeout/setInterval)以及第三方库(如 GSAP)。以下是几种常见的实现方法:
使用 CSS 动画 + JavaScript 控制
CSS 动画性能较好,适合简单的运动效果,通过 JavaScript 动态添加或移除类名来触发动画。

// HTML: <div id="box"></div>
const box = document.getElementById('box');
box.classList.add('move');
// CSS:
// .move {
// animation: slide 2s forwards;
// }
// @keyframes slide {
// from { transform: translateX(0); }
// to { transform: translateX(200px); }
// }
使用 requestAnimationFrame 实现平滑动画
requestAnimationFrame 是浏览器原生支持的动画 API,适合需要精细控制的运动效果。

const box = document.getElementById('box');
let position = 0;
function animate() {
position += 2;
box.style.transform = `translateX(${position}px)`;
if (position < 200) {
requestAnimationFrame(animate);
}
}
animate();
使用 setInterval 或 setTimeout
定时器适合简单的运动逻辑,但性能不如 requestAnimationFrame。
const box = document.getElementById('box');
let position = 0;
const timer = setInterval(() => {
position += 2;
box.style.transform = `translateX(${position}px)`;
if (position >= 200) {
clearInterval(timer);
}
}, 16);
使用 GSAP 库实现高级动画
GSAP(GreenSock Animation Platform)是一个专业的动画库,支持复杂动画效果。
// 引入 GSAP 后使用
gsap.to("#box", { x: 200, duration: 2 });
运动效果进阶
- 缓动函数:通过缓动函数(如
ease-in、ease-out)让运动更自然。 - 物理模拟:加入加速度、摩擦力等物理参数,实现更真实的运动效果。
- 路径动画:使用 SVG 或 Canvas 实现复杂路径运动。
注意事项
- 优先使用
requestAnimationFrame而非setInterval,以避免性能问题。 - 对于复杂动画,推荐使用 GSAP 或 Anime.js 等专业库。
- 移动端注意优化性能,避免过度使用动画导致卡顿。






