语法:
@keyframes <identifier> { <keyframes-blocks> }
<keyframes-blocks> :[ [ from | to | <percentage> ]{ sRules } ] [ [ , from | to | <percentage> ]{ sRules } ]*
取值:
- <identifier> :
- identifier定义一个动画名称
- <keyframes-blocks>:
- 定义动画在每个阶段的样式,即帧动画。
说明:
指定动画名称和动画效果。
- @keyframes 定义的动画名称用来被 animation-name 所使用。
-
定义动画时,简单的动画可以直接使用关键字from和to,即从一种状态过渡到另一种状态:
示例代码:
@keyframes testanimations { from { opacity: 1; } to { opacity: 0; } } 其中testanimations是该动画的名字,该动画表示某个东西将逐渐消失。
-
如果复杂的动画,可以混合
<percentage>
去设置某个时间段内的任意时间点的样式:
示例代码:
@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); } } -
当然,也可以不使用关键字from和to,而都使用
<percentage>
:
示例代码:
@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); } } 注意,这里的0%不能简写成0,0是非标准语法(虽然被某些浏览器所支持)。
兼容性:
- 浅绿 = 支持
- 红色 = 不支持
- 粉色 = 部分支持
IE | Firefox | Chrome | Safari | Opera | iOS Safari | Android Browser | Android Chrome |
---|---|---|---|---|---|---|---|
6.0-9.0 | 2.0-4.0 |
4.0-43.0
-webkit- |
3.1-3.2 |
15.0-29.0
-webkit- |
3.2-8.1
-webkit- |
2.1-3.0
-webkit- |
18.0-40.0
-webkit- |
10.0+ |
5.0-15.0
-moz- |
4.0-8.1
-webkit- |
4.0+
-webkit- |
||||
16.0 |