CSS3 Animation 动画

CSS3属性中有关于制作动画的三个属性:Transform,Transition,Animation;

Animation主要是对元素实现了一些基本的动画效果,它只能应用在页面的DOM元素上。

Animation:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画。可以设置多个关键贞。

w3school在线文档说明

http://www.w3school.com.cn/css3/css3_animation.asp

不同浏览器兼容

div{
animation:;
-moz-animation:;	/* Firefox */
-webkit-animation:;	/* Safari 和 Chrome */
-o-animation:;	/* Opera */
}


Chrome 和 Safari 需要前缀 -webkit-。

Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 规则和 animation 属性。

注释:Internet Explorer 9,以及更早的版本,不支持 @keyframe 规则或 animation 属性。

  

CSS3 Animation 动画属性

下面的表格列出了 @keyframes 规则和所有动画属性:

属性描述CSS
animation 所有动画属性的简写属性,除了 animation-play-state 属性。 3
@keyframes 规定动画。 3
animation-name 规定 @keyframes 动画的名称。 3
animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 3
animation-timing-function 规定动画的速度曲线。默认是 "ease"。 3
animation-delay 规定动画何时开始。默认是 0。 3
animation-iteration-count 规定动画被播放的次数。默认是 1。 3
animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。 3
animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。 3
animation-fill-mode 规定对象动画时间之外的状态。 3

animation

animation 属性是一个简写属性,用于设置六个动画属性:

  • animation-name
  • animation-duration
  • animation-timing-function
  • animation-delay
  • animation-iteration-count
  • animation-direction

注释:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

animation: name duration timing-function delay iteration-count direction;

 

@keyframes

通过 @keyframes 规则,您能够创建动画。

创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。

在动画过程中,您能够多次改变这套 CSS 样式。

以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。

0% 是动画的开始时间,100% 动画的结束时间。

为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

注释:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。

@keyframes animationname {keyframes-selector {css-styles;}}

 

@keyframes mymove
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

@-moz-keyframes mymove /* Firefox */
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

@-webkit-keyframes mymove /* Safari 和 Chrome */
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

@-o-keyframes mymove /* Opera */
{
0%   {top:0px;}
25%  {top:200px;}
50%  {top:100px;}
75%  {top:200px;}
100% {top:0px;}
}

animation-name

animation-name 属性为 @keyframes 动画规定名称。

注释:请始终规定 animation-duration 属性,否则时长为 0,就不会播放动画了。

animation-name: keyframename|none;

 

animation-duration

animation-duration 属性定义动画完成一个周期所需要的时间,以秒或毫秒计。

animation-duration: time;

 

animation-timing-function

animation-timing-function 规定动画的速度曲线。

速度曲线定义动画从一套 CSS 样式变为另一套所用的时间。

速度曲线用于使变化更为平滑。

animation-timing-function: value;

animation-timing-function 使用名为三次贝塞尔(Cubic Bezier)函数的数学函数,来生成速度曲线。您能够在该函数中使用自己的值,也可以预定义的值:

描述测试
linear 动画从头到尾的速度是相同的。 测试
ease 默认。动画以低速开始,然后加快,在结束前变慢。 测试
ease-in 动画以低速开始。 测试
ease-out 动画以低速结束。 测试
ease-in-out 动画以低速开始和结束。 测试
cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。  

提示:请试着在下面的“亲自试一试”功能中使用不同的值。

animation-delay

animation-delay 属性定义动画何时开始。

animation-delay 值以秒或毫秒计。

提示:允许负值,-2s 使动画马上开始,但跳过 2 秒进入动画。

animation-delay: time;

 

animation-iteration-count

animation-iteration-count 属性定义动画的播放次数。

animation-iteration-count: n|infinite;
描述测试
n 定义动画播放次数的数值。 测试
infinite 规定动画应该无限次播放。 测试

animation-direction

animation-direction 属性定义是否应该轮流反向播放动画。

如果 animation-direction 值是 "alternate",则动画会在奇数次数(1、3、5 等等)正常播放,而在偶数次数(2、4、6 等等)向后播放。

注释:如果把动画设置为只播放一次,则该属性没有效果。

animation-direction: normal|alternate;
描述测试
normal 默认值。动画应该正常播放。 测试
alternate 动画应该轮流反向播放。 测试

animation-play-state

animation-play-state 属性规定动画正在运行还是暂停。

注释:您可以在 JavaScript 中使用该属性,这样就能在播放过程中暂停动画。

animation-play-state: paused|running;
描述测试
paused 规定动画已暂停。 测试
running 规定动画正在播放。 测试

animation-fill-mode

animation-fill-mode 属性规定动画在播放之前或之后,其动画效果是否可见。

注释:其属性值是由逗号分隔的一个或多个填充模式关键词。

animation-fill-mode : none | forwards | backwards | both;
描述
none 不改变默认行为。
forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。
backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义)。
both 向前和向后填充模式都被应用。
posted @ 2015-03-05 15:22  dtdxrk  阅读(437)  评论(0编辑  收藏  举报