答案:css animation 通过 @keyframes 定义动画关键帧,并用 animation 属性设置名称、时长、速度等参数,可简写为一行,实现如渐显、位移等动效,需注意命名正确和性能优化。

CSS 的 animation 属性可以让你为元素创建平滑的动画效果,无需 JavaScript。要设置一个动画,你需要定义关键帧(@keyframes)并将其应用到目标元素上。
1. 定义关键帧 @keyframes
使用 @keyframes 规则来指定动画过程中不同阶段的样式变化。你可以用百分比(0% 到 100%)或关键词 from(等于 0%)和 to(等于 100%)来描述动画状态。
例如:
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
这个动画从完全透明变为完全不透明。
立即学习“前端免费学习笔记(深入)”;
2. 将动画应用到元素
在元素的 CSS 样式中使用 animation 属性来调用你定义的关键帧,并设置动画的行为参数。
常用子属性包括:
- animation-name:指定 @keyframes 的名称(如 fadeIn)
- animation-duration:动画持续时间,单位 s 或 ms(如 2s)
- animation-timing-function:动画速度曲线(如 ease、linear、ease-in-out)
- animation-delay:动画开始前的延迟时间
- animation-iteration-count:播放次数(可设具体数字或 infinite 循环)
- animation-direction:播放方向(normal、reverse、alternate 等)
- animation-fill-mode:动画外时间的应用样式(如 forwards 保持最后一帧)
- animation-play-state:控制暂停或运行(paused / running)
示例:
.animated-box { animation-name: fadeIn; animation-duration: 2s; animation-timing-function: ease-in; animation-delay: 0.5s; animation-iteration-count: infinite; animation-direction: alternate; animation-fill-mode: forwards; }
3. 使用简写 animation 属性
通常推荐使用简写形式,更简洁高效:
.animated-box { animation: fadeIn 2s ease-in 0.5s infinite alternate forwards; }
顺序一般为:animation: name duration timing-function delay iteration-count direction fill-mode;
4. 实际应用场景举例
让一个盒子左右移动并渐显:
@keyframes slideIn { 0% { transform: translateX(-100px); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } } .box { width: 100px; height: 100px; background: blue; animation: slideIn 1.5s ease-out forwards; }
基本上就这些。只要定义好关键帧,再通过 animation 属性绑定和配置,就能实现丰富的视觉动效。不复杂但容易忽略细节,比如忘记加 vendor 前缀(现代浏览器基本不需要)或拼错 keyframes 名称。确保测试兼容性和性能,避免过度动画影响用户体验。
暂无评论


