8.3 动画 animation
关键帧
帧——就是动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。
关键帧语法
@keyframes 动画名称 {
}
@keyframes testanimations {
from { opacity: 1; }
to { opacity: 0; }
}
@keyframes testanimations {
from { transform: translate(0, 0); }
20% { transform: translate(20px, 20px); }
40% { transform: translate(40px, 0); }
60% { transform: translate(60px, 20); }
80% { transform: translate(80px, 0); }
to { transform: translate(100px, 20px); }
}
@keyframes testanimations{
0% { transform: translate(0, 0); }
20% { transform: translate(20px, 20px); }
40% { transform: translate(40px, 0); }
60% { transform: translate(60px, 20px); }
80% { transform: translate(80px, 0); }
100% { transform: translate(100px, 20px); }
}
动画相关属性
animation 设置对象所应用的动画特效 复合属性
注意:
如果提供多组属性值,以逗号进行分隔。
如果只提供一个参数,则为
animation-duration
的值定义;如果提供二个参数,则第一个为animation-duration
的值定义,第二个为animation-delay
的值定义用法:
animation: <single-animation-name> || <time> || <single-animation-timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state>
animation-name 设置对象所应用的动画名称
必须与规则@keyframes配合使用,因为动画名称由@keyframes定义
animation-duration 设置对象动画的持续时间
animation-timing-function 设置对象动画的过渡类型
取值:
ease: 平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
linear: 线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
ease-in: 由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
ease-out: 由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)
ease-in-out: 由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
cubic-bezier( number, number, number, number): 特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内
step-start: 等同于 steps(1, start)
step-end: 等同于 steps(1, end)
steps( integer [, [ start | end ] ]?): 接受两个参数的步进函数。第一个参数必须为正整数,指定函数的步数。第二个参数取值可以是start或end,指定每一步的值发生变化的时间点。第二个参数是可选的,默认值为end。
animation-delay 指定对象动画的延迟时间
animation-iteration-count 指定动画的具体循环次数
取值:
number:动画循环次数
infinite: 无限循环
animation-direction 设置对象动画在循环中是否反向运动
取值:
normal: 正常方向 (默认)
reverse: 反方向运行
alternate: 动画先正常运行再反方向运行,并持续交替运行
alternate-reverse: 动画先反运行再正方向运行,并持续交替运行
animation-play-state 设置对象动画的状态
取值:
running: 运动 (默认)
paused: 暂停
animation-fill-mode 设置对象动画时间之外的状态
取值:
none: 默认值。不设置对象动画之外的状态
forwards: 设置对象状态为动画结束时的状态
backwards: 设置对象状态为动画开始时的状态
both: 设置对象状态为动画结束或开始的状态
动画事件
事件名称 | 何时触发 |
---|---|
animationstart |
动画开始。 |
animationend |
动画完成。 |
animationiteration |
动画重复执行时。 |