答案: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 属性来调用你定义的关键帧,并设置动画的行为参数。
常用子属性包括:
Yes!Sun基于PHP+MYSQL技术,体积小巧、应用灵活、功能强大,是一款为企业网站量身打造的WEB系统。其创新的设计理念,为企业网的开发设计及使用带来了全新的体验:支持前沿技术:动态缓存、伪静态、静态生成、友好URL、SEO设置等提升网站性能、用户体验、搜索引擎友好度的技术均为Yes!Sun所支持。易于二次开发:采用独创的平台化理念,按需定制项目中的各种元素,如:产品属性、产品相册、新闻列表
- 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 名称。确保测试兼容性和性能,避免过度动画影响用户体验。








