CSS 动画和 JS 动画都是用于在网页上创建动态效果的技术,它们各有优势和特点。
基础概念:
优势:
类型:
transition
属性实现简单的属性变化动画。@keyframes
规则定义动画的关键帧。setTimeout
和 setInterval
。应用场景:
常见问题及原因:
解决方法:
transform: translateZ(0)
)。requestAnimationFrame
来优化动画性能,它会在浏览器重绘之前调用指定的回调函数。以下是一个简单的 CSS 动画示例,实现一个元素在 2 秒内从左向右移动:
@keyframes move {
from {
transform: translateX(0);
}
to {
transform: translateX(200px);
}
}
.box {
width: 100px;
height: 100px;
background-color: red;
animation: move 2s linear infinite;
}
以下是一个简单的 JS 动画示例,实现一个元素在 2 秒内从左向右移动:
const box = document.querySelector('.box');
let start = null;
function step(timestamp) {
if (!start) start = timestamp;
const progress = timestamp - start;
const x = (progress / 2000) * 200;
box.style.transform = `translateX(${x}px)`;
if (progress < 2000) {
requestAnimationFrame(step);
}
}
requestAnimationFrame(step);
希望以上内容能帮助您理解 CSS 动画和 JS 动画的相关知识!
领取专属 10元无门槛券
手把手带您无忧上云