✨ CSS 动画与性能

Transition、Animation、缓动函数、GPU 加速的可交互演示

1. Transition 过渡动画

0.3s
0s
提示: 鼠标悬停在方块上查看过渡效果
Hover Me

2. 缓动函数对比

linear
ease
ease-in
ease-out
ease-in-out
cubic-bezier
.box { transition-timing-function: linear; /* 匀速 */ transition-timing-function: ease; /* 慢-快-慢 (默认) */ transition-timing-function: ease-in; /* 慢-快 */ transition-timing-function: ease-out; /* 快-慢 */ transition-timing-function: ease-in-out; /* 慢-快-慢 */ transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55); /* 自定义贝塞尔 */ }

3. Animation 关键帧动画

1s
PLAY

4. 常用动画效果集合

提示: 点击任意卡片查看动画效果

5. GPU 加速性能对比

⚠️ 性能提示:
避免: left/top/width/height (触发 Layout + Paint)
推荐: transform/opacity (只触发 Composite,GPU 加速)
• 使用 will-change 提前通知浏览器优化
❌ 不使用 GPU 加速 (left)
left
✅ GPU 加速 (transform)
transform
/* ❌ 性能差:触发 Layout + Paint */ .box-bad { animation: move-left 2s infinite; } @keyframes move-left { 0% { left: 0; } 100% { left: 200px; } } /* ✅ 性能好:只触发 Composite,GPU 加速 */ .box-good { animation: move-transform 2s infinite; will-change: transform; /* 提前通知浏览器 */ } @keyframes move-transform { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } } /* will-change 最佳实践 */ .box { /* 不要全局设置,按需添加 */ will-change: transform, opacity; } .box.animating { /* 动画开始时添加 */ will-change: transform; } /* 动画结束后移除 will-change */