写在前面

css3的animation可以实现很多炫酷的动画,让自己的网页看起来更加生动灵活,下面,来看一下都有些什么玩意属性。

动画属性

首先,我们看一下具体写法

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

具体化表现形式

animation:myAnim 1s linear 1s infinite alternate both running;
分别是:
	关键帧名字,
	1个周期1秒,
	动画速度相同,
	动画1秒后开始,
	无限播放,
	可以反向播放,
	动画在两个方向上扩展动画属性,
	开始播放动画

都有什么属性呢

  1. animation-name:指定要绑定到选择器的关键帧的名称。
  2. animation-duration:定义动画完成一个周期需要多少秒或毫秒
  3. animation-timing-function:指定动画将如何完成一个周期。


说明

linear

动画从头到尾的速度是相同的。

ease

默认。动画以低速开始,然后加快,在结束前变慢。

ease-in

动画以低速开始。

ease-out

动画以低速结束。

ease-in-out

动画以低速开始和结束。

cubic-bezier(n,n,n,n)

在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

step-start

在变化过程中,都是以下一帧的显示效果来填充间隔动画

step-end

在变化过程中,都是以上一帧的显示效果来填充间隔动画

steps()

可以传入两个参数,第一个是一个大于0的整数,他是将间隔动画等分成指定数目的小间隔动画,然后根据第二个参数来决定显示效果。第二个参数设置后其实和step-start,step-end同义,在分成的小间隔动画中判断显示效果。

其中 cubic-bezier(n,n,n,n) 称为三次贝塞尔曲线,速度曲线,反正我也不知道怎么算的。
可以通过工具定制=》戳他

  1. animation-delay:属性定义动画什么时候开始。
  2. animation-iteration-count :定义动画播放多少次数。


说明

n

一个数字,定义应该播放多少次动画

infinite

指定动画应该播放无限次(永远)

  1. animation-direction:定义是否循环交替反向播放动画。


说明

normal

默认值。动画按正常播放。

reverse

动画反向播放。

alternate

动画在奇数次(1、3、5…)正向播放,在偶数次(2、4、6…)反向播放。

alternate-reverse

动画在奇数次(1、3、5…)反向播放,在偶数次(2、4、6…)正向播放。

initial

设置该属性为它的默认值。

inherit

从父元素继承该属性。

  1. animation-fill-mode:规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。


说明

none

默认值。动画在动画执行之前和之后不会应用任何样式到目标元素。

forwards

在动画结束后(由 animation-iteration-count 决定),动画将应用该属性值。

backwards

动画将应用在 animation-delay 定义期间启动动画的第一次迭代的关键帧中定义的属性值。这些都是 from 关键帧中的值(当 animation-direction 为 “normal” 或 “alternate” 时)或 to 关键帧中的值(当 animation-direction 为 “reverse” 或 “alternate-reverse” 时)。

both

动画遵循 forwards 和 backwards 的规则。也就是说,动画会在两个方向上扩展动画属性。

initial

设置该属性为它的默认值。

inherit

从父元素继承该属性。

  1. animation-play-state:指定动画是否正在运行或已暂停。


说明

paused

指定暂停动画。

running

指定正在运行的动画。

keyframes属性

keyframes:定义动画规则,关键帧。


说明

animationname

必需的。定义animation的名称。

keyframes-selector

必需的。动画持续时间的百分比。

css-styles

必需的。一个或多个合法的CSS样式属性

至于写法,一种用fromto,一种用0%到100%

@keyframes myAnim{
   from { background: #f00; }
   50% { background: #0f0; }
   to { background: yellowgreen; }
}
@keyframes myAnim{
	0% { background: #f00; }
	50% { background: #0f0; }
	100% { background: yellowgreen; }
}