在开始介绍Animation以前咱们有必要先来了解一个特殊的东西,那就是"Keyframes",咱们把他叫作“关键帧”,玩过flash的朋友可能对这个东西并不会陌生。下面咱们就一块儿来看看这个“Keyframes”是什么东西。前面咱们在使用transition制做一个简单的transition效果时,咱们包括了初始属性和最终属性,一个开始执行动做时间和一个延续动做时间以及动做的变换速率,其实这些值都是一个中间值,若是咱们要控制的更细一些,好比说我要第一个时间段执行什么动做,第二个时间段执行什么动做(换到flash中说,就是第一帧我要执行什么动做,第二帧我要执行什么动做),这样咱们用Transition就很难实现了,此时咱们也须要这样的一个“关键帧”来控制。那么CSS3的Animation就是由“keyframes”这个属性来实现这样的效果。javascript
Keyframes具备其本身的语法规则,他的命名是由"@keyframes"开头,后面紧接着是这个“动画的名称”加上一对花括号“{}”,括号中就是一些不一样时间段样式规则,有点像咱们css的样式写法同样。对于一个"@keyframes"中的样式规则是由多个百分比构成的,如“0%”到"100%"之间,咱们能够在这个规则中建立多个百分比,咱们分别给每个百分比中给须要有动画效果的元素加上不一样的属性,从而让元素达到一种在不断变化的效果,好比说移动,改变元素颜色,位置,大小,形状等,不过有一点须要注意的是,咱们能够使用“fromt”“to”来表明一个动画是从哪开始,到哪结束,也就是说这个 "from"就至关于"0%"而"to"至关于"100%",值得一说的是,其中"0%"不能像别的属性取值同样把百分比符号省略,咱们在这里必须加上百分符号(“%”)若是没有加上的话,咱们这个keyframes是无效的,不起任何做用。由于keyframes的单位只接受百分比值。css
Keyframes能够指定任何顺序排列来决定Animation动画变化的关键位置。其具体语法规则以下:java
keyframes-rule: '@keyframes' IDENT '{' keyframes-blocks '}'; keyframes-blocks: [ keyframe-selectors block ]* ; keyframe-selectors: [ 'from' | 'to' | PERCENTAGE ] [ ',' [ 'from' | 'to' | PERCENTAGE ] ]*;
keyframes实例:css3
@-webkit-keyframes 'wobble' { 0% { margin-left: 100px; background: green; } 40% { margin-left: 150px; background: orange; } 60% { margin-left: 75px; background: blue; } 100% { margin-left: 100px; background: red; } }
animation主要有如下几种:animation-name;animation-duration;animation-timing-function;animation-delay;animation-iteration-count;animation-direction;animation-play-state。web
1、animation-name:动画
语法:spa
animation-name: none | IDENT[,none | IDENT]*;
取值说明:orm
animation-name:是用来定义一个动画的名称xml
2、animation-duration:blog
语法:
animation-duration: <time>[,<time>]*
取值说明:
animation-duration是用来指定元素播放动画所持续的时间长
3、animation-timing-function:
语法:
animation-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>)]*
取值说明:
animation-timing-function:是指元素根据时间的推动来改变属性值的变换速率,说得简单点就是动画的播放方式
4、animation-delay:
语法:
animation-delay: <time>[,<time>]*
取值说明:
animation-delay:是用来指定元素动画开始时间。
5、animation-iteration-count
语法:
animation-iteration-count:infinite | <number> [, infinite | <number>]*
取值说明:
animation-iteration-count是用来指定元素播放动画的循环次数
6、animation-direction
语法:
animation-direction: normal | alternate [, normal | alternate]*
取值说明:
animation-direction是用来指定元素动画播放的方向
7、animation-play-state
语法:
animation-play-state:running | paused [, running | paused]*
取值说明:
animation-play-state主要是用来控制元素动画的播放状态。
参考连接:http://www.w3cplus.com/content/css3-animation