CSS3之animation动画
# CSS3之animation动画
# 动画
- 动画和过渡类似,都是可以实现一些动态的效果,
- 不同的是过渡需要在某个属性发生变化时才会触发,动画可以自动触发动态效果
- 设置动画效果,必须先要设置一个关键帧,关键帧设置了动画执行每一个步骤
animation-name:test; 要对当前元素生效的关键帧的名字
animation-duration:4s; 动画的执行时间
animation-delay: 2s; 动画的延时
animation-timing-function: ease-in-out;
animation-iteration-count:1; 动画执行的次数
可选值:
次数
infinite 无限执行
animation-direction:normal; 指定动画运行的方向
可选值:
normal 默认值 从 from 向 to运行 每次都是这样
reverse 从 to 向 from 运行 每次都是这样
alternate 从 from 向 to运行 重复执行动画时反向执行
alternate-reverse 从 to 向 from运行 重复执行动画时反向执行
animation-play-state:paused; 设置动画的执行状态
可选值:
running 默认值 动画执行
paused 动画暂停
animation-fill-mode:none; 动画的填充模式
可选值:
none 默认值 动画执行完毕元素回到原来位置
forwards 动画执行完毕元素会停止在动画结束的位置
backwards 动画延时等待时,元素就会处于开始位置
both 结合了forwards 和 backwards
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
- 动画基础案例
- 动画-小球自由落体
# 变形
变形就是指通过CSS来改变元素的形状或位置
变形不会影响到页面的布局
transform 用来设置元素的变形效果
平移:
transform:translateX() 沿着x轴方向平移
transform:translateY() 沿着y轴方向平移
transform:translateZ() 沿着z轴方向平移平移元素,百分比是相对于自身计算的
z轴平移,调整元素在z轴的位置,正常情况就是调整元素和人眼之间的距离,距离越大,元素离人越近
z轴平移属于立体效果(近大远小),默认情况下网页是不支持透视,如果需要看见效果必须要设置网页的视距和指定3D舞台,要在变形元素的父元素上
html{ /* 设置当前网页的视距为800px,人眼距离网页的距离 */ perspective: 800px; } transform-style: preserve-3d;
1
2
3
4
5
- Y轴变形
- Z轴变形
# 旋转
- 通过旋转可以使元素沿着x y 或 z旋转指定的角度
transform:rotateX(180deg)
transform:rotateY()
transform:rotateZ()
- 旋转基础案例
# 缩放
对元素进行缩放的函数:
transform:scaleX() 水平方向缩放
transform:scaleY() 垂直方向缩放
transform:scale() 双方向的缩放
可用F12开发者工具查看元素及样式,可打开codepen在线编辑代码。
# 贝塞尔曲线 cubic-bezier(x1,y1,x2,y2)
通过调整贝塞尔曲线可以设置出多种动画效果,比如反弹效果等 X轴的范围是0~1,Y轴的取值没有规定,但是也不宜过大。 如:直线linear,即cubic-bezier(0,0,1,1)
贝塞尔曲线在线工具:https://cubic-bezier.com/#.17,.67,.83,.67 (opens new window)
参考:https://www.w3school.com.cn/css3/index.asp (opens new window)
Last Updated: 2024/10/28, 16:28:52