帧动画
动画属性
不是所有 css 属性都有过渡效果,查看支持动画的 CSS 属性 ,一般来讲有中间值的属性都可以设置动画如宽度、透明度等。
心动
html
<style>
div.love-animation-heart {
position: relative;
transform: rotate(135deg);
animation: love-animation-heart 2s linear infinite;
width: 100px;
height: 100px;
background: red;
&::before {
content: '';
background: red;
width: 100px;
height: 100px;
display: inline-block;
transform: translateX(-50%);
border-radius: 50%;
}
&::after {
content: '';
background: red;
width: 100px;
height: 100px;
display: inline-block;
border-radius: 50%;
transform: translate(0, -50%);
}
}
@keyframes love-animation-heart {
0% {
transform: rotate(135deg) scale(0);
}
100% {
transform: rotate(135deg) scale(1);
}
}
</style>
<div class="love-animation-heart"></div>
动画方向
使用 animation-direction
控制动画运行的方向。
选项 | 说明 |
---|---|
normal | 从 0%到 100%运行动画 |
reverse | 从 100%到 0%运行动画 |
alternate | 先从 0%到 100%,然后从 100%到 0% |
alternate-reverse | 先从 100%到 0%,然后从 0%到 100% |
步进速度
步进需要先理解状态,原始状态、初始状态、结束状态。
过渡使用阶梯化呈现,有点像现实生活中的机械舞,下面是把过渡分五步完成。
选项 | 说明 |
---|---|
steps(n,start) | 设置 n 个时间点,第一时间点变化状态,即原始状态。 |
steps(n,end) | 设置 n 个时间点,第一时间点初始状态 |
step-start | 等于 steps(1,start),可以理解为从下一步开始,即第二步开始。 |
step-end | 等于 steps(1,end),可以理解为从当前步开始,第一步即为初始状态 |
steps
steps(n,start)
可以简单理解为从第二个开始,steps(n,end)
从第一个开始。
播放状态
使用 animation-play-state
可以控制动画的暂停与运行。
选项 | 说明 |
---|---|
paused | 暂停 |
running | 运行 |
填充模式
animation-fill-mode
用于定义动画播放结束后的处理模式,是回到原来状态还是停止在动画结束状态。
选项 | 说明 |
---|---|
none | 需要等延迟结束,起始帧属性才应用 |
backwards | 动画效果初始状态为起始帧,不等延迟结束即显示为起始帧,结束后停留在原始帧 |
forwards | 结束后停留动画的最后一帧 |
both | 包含 backwards 与 forwards 规则,即动画效果在起始帧,不等延迟结束,并且在结束后停止在最后一帧 |