关键帧动画通过@keyframes定义动画序列,结合animation属性应用到元素,实现复杂视觉效果。1. 使用@keyframes设定动画名称与时间节点(如0%、50%、100%),可替换为from/to;2. 在CSS中通过animation-name、duration、timing-function等属性控制动画行为,支持简写;3. 完整步骤包括定义关键帧、绑定元素、调用动画,并可设置fill-mode维持状态;4. 注意避免频繁修改布局属性,优先使用transform提升性能,确保兼容性并利用多节点实现细腻变化。
关键帧动画(Keyframe Animation)是CSS中实现复杂动画效果的核心工具之一。它通过定义动画过程中各个阶段的样式状态,让元素在不同时间点呈现不同的视觉效果。
1. @keyframes 规则的基本语法
使用 @keyframes 来定义一个动画序列,语法格式如下:
@keyframes 动画名称 {
0% { 样式属性: 值; }
50% { 样式属性: 值; }
100% { 样式属性: 值; }
}
其中:
- 动画名称:自定义名称,用于后续引用
- 0%、50%、100%:表示动画的时间节点,也可以用 from 和 to 替代 0% 和 100%
- 每个阶段可设置多个CSS属性,如
transform
、opacity
、color
等
示例:
立即学习“前端免费学习笔记(深入)”;
@keyframes slideIn {
from {
transform: translateX(-100px);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
} }
2. 将关键帧动画应用到元素
定义完动画后,需要通过 animation 属性将其绑定到具体元素上。
- animation-name:指定使用的 @keyframes 名称
- animation-duration:动画持续时间(如 2s)
- animation-timing-function:速度曲线(如 ease-in-out)
- animation-delay:延迟多久开始
- animation-iteration-count:播放次数(可设为 infinite 循环)
- animation-direction:是否反向播放(如 alternate)
简写示例:
.animated-element {
animation: slideIn 2s ease-out 0.5s infinite alternate;
}
3. 完整实现步骤
创建一个关键帧动画的完整流程包括以下几步:
- 使用 @keyframes 定义动画名称和各阶段样式
- 选择目标HTML元素,为其添加类名或直接写样式
- 在该元素的CSS规则中使用 animation 属性调用动画
- 可选:添加 animation-fill-mode 控制动画外阶段的样式(如
forwards
保持最终状态)
HTML 示例:
<div class=”box”>动画元素</div>
CSS 示例:
.box {
width: 100px;
height: 100px;
background: blue;
animation: slideIn 2s ease-in-out;
}
4. 注意事项与技巧
编写关键帧动画时需注意:
- 确保浏览器兼容性,必要时添加前缀(如 -webkit-@keyframes)
- 避免在关键帧中频繁修改布局相关属性(如 width、margin),推荐使用
transform
提升性能 - 可以定义多个关键帧段(如 0%、30%、70%、100%)实现更细腻的变化
- 调试时可通过减短 duration 和设置 border 等辅助样式观察变化过程
基本上就这些。掌握关键帧动画的结构和调用方式后,就能灵活实现各种过渡与动态效果。
html css 浏览器 工具 html元素 css属性 css html webkit count 循环 class function margin border background transform animation