« 回到主页

CSS3 新特性——animation

1 创建动画

@keyframes规则——指定一个CSS样式,动画将逐步更改样式。可以改变任意多的样式任意多的次数。
用百分比或用关键词”from” 和 “to”来规定变化发生的时间。”from” 和 “to”分别等同于 %和100%,0%是动画的开始,100%是动画的完成。

@keyframes myAnimation{
    0%{background:red;}
    25%{background:orange;}
    50%{background:yellow;}
    75%{background:green;}
    100%{background:blue;}
}

注意 -webkit-, -ms- 或 -moz- 前缀。

2 动画绑定到选择器

animation属性——所有动画属性的简写属性,除了animation-play-state属性。
指定至少两个子属性:动画名称animation-name、动画时长animation-duration。

div{
    animation:myAnimation 20s;
}

注意 -webkit-, -ms- 或 -moz- 前缀。

3 动画静置

可以将动画细分为动画和静置两个阶段。

@keyframes myAnimation{
    0%,20%{background:red;}
    30%,40%{background:orange;}
    50%,60%{background:yellow;}
    70%,80%{background:green;}
    90%,100%{background:blue;}
}

如40%~60%包含:40%~50%的动画阶段和50%~60%的静置阶段。

4 animation属性

4.1 animation-name属性

为@keyframes动画指定名称。

4.2 animation-duration属性

定义动画完成一个周期需要的秒或毫秒数。默认值为0,意味着没有动画效果。

4.3 animation-timing-function属性

指定动画将如何完成一个周期。定义动画从一套CSS样式变为另一套CSS样式所用的时间,用于使变化更为平滑。

4.4 animation-delay属性

定义动画什么时候开始,单位可以是秒(s)或毫秒(ms), 默认值为0,允许负值,如-2s 使动画马上开始,但跳过 2 秒进入动画。

4.5 animation-iteration-count属性

定义动画应该播放多少次。

4.6 animation-direction属性

定义是否循环交替反向播放动画。如果动画被设置为只播放一次,该属性将不起作用。

4.7 animation-fill-mode属性

规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。 默认情况下,CSS 动画在第一个关键帧播放完之前不会影响元素,在最后一个关键帧完成后停止影响元素。animation-fill-mode属性可重写该行为。

4.8 animation-play-state属性

指定动画是否正在运行或已暂停。可以在JavaScript中使用此属性在一个周期中暂停动画。

« 回到主页