动画
使用animation添加动画效果,实现多个状态间的变化过程,动画过程可控(重复播放、最终动画、是否暂停)
动画的本质是快速切换大量图片时在人脑中形成的具有连续性的画面
构成动画的最小单元:帧或动画帧
定义动画
两种状态间的变化:
css@keyframes 动画名称 { from {} to {} }
1
2
3
4多个状态之间的变化:
css@keyframes 动画名称 { 0% {} 10% {} 15% {} 100% {} } 注意:百分比指的是动画总时长的占比 0%~100%称为动画序列
1
2
3
4
5
6
7
8
9
使用动画
css
animation: 动画名称 动画花费时长;
1
使用动画相关属性控制动画执行过程
cssanimation: 动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时状态;
1属性 作用 取值 animation-name 动画名称 animation-duraton 动画时长 animation-timing-function 设置动画的过渡类型 linear线性过渡
ease 由慢到快再到慢【默认】
ease-in由慢到快
ease-out由快到慢
ease-in-out由慢到快(匀速)再到慢
steps(数字) 逐帧动画animation-delay 设置动画延迟的时间 默认是0 animation-iteration-count 设置动画的循环次数 infinite 无限循环,默认值为1 animation-direction 动画在循环中是否反向运动 normal正常方向
reverse反方向运行
alternate 先正常运行再反向运行,并持续交替
alternate-reverse先反向运行再正向运行,并持续交替运行animation-fill-mode 规定动画执行完毕时状态 none默认值
forwards 结束状态
backwards 开始状态
both结束或开始的状态animation-play-state 暂停动画,规定动画是否正在运行或暂停 paused 暂停,通常配合:hover使用,默认是running - 注意:
- 动画名称和动画时长必须赋值
- 取值不分先后顺序
- 如果有2个时间值,第一个时间表示动画时长,第二个时间表示延迟时间
- 逐帧动画配合精灵图使用,其他都是补间动画
- 注意:
css
@keyframes move {
0% {
transform: translateX(0px);
}
100% {
transform: translateX(1000px);
}
}
div {
width: 100px;
height: 50px;
background-color: pink;
animation: move 5s;
}
<div></div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
多组动画
css
animation: 动画1,动画2,动画N;
1