JavaScript 动画是通过操作 HTML 元素的 CSS 属性来实现的。以下是一些基础概念和相关信息:
requestAnimationFrame
requestAnimationFrame
是浏览器提供的优化动画的 API,它会在浏览器重绘之前调用指定的回调函数来更新动画。
const element = document.getElementById('animatedElement');
let start;
function step(timestamp) {
if (!start) start = timestamp;
const progress = timestamp - start;
element.style.transform = `translateX(${Math.min(progress / 10, 200)}px)`;
if (progress < 2000) {
requestAnimationFrame(step);
}
}
requestAnimationFrame(step);
通过 CSS 定义动画关键帧,然后应用到元素上。
@keyframes slideIn {
from { transform: translateX(-100%); }
to { transform: translateX(0); }
}
.animatedElement {
animation: slideIn 2s ease-in-out;
}
jQuery 提供了简单的动画方法。
$('#animatedElement').animate({
left: '250px',
}, 2000);
requestAnimationFrame
可以确保动画在最佳时机执行,减少资源消耗。requestAnimationFrame
替代 setTimeout
或 setInterval
;优化代码,减少每一帧的计算量。transform
和 opacity
属性,因为它们可以通过 GPU 加速。通过以上方法,可以有效地创建和控制 JavaScript 动画,提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云