在CSS3中,我们可以使用animation属性来实现元素的动画效果。animation属性和transition属性的区别。
语法
元素{原始属性}
/*定义动画*/
@keyframes 动画名称
{
0%{属性:属性值;}
···
100%{属性:属性值;}
}
/*调用动画*/
元素:hover{animation:动画名称 持续时间 动画方式 延迟时间 动画次数 动画方向;}
animation是一个复合属性,主要包括6个子属性。
属性 | 说明 |
animation-name | 对哪一个CSS属性进行操作 |
animation-duration | 动画的持续时间 |
animation-timing-function | 动画的速率变化方式 |
animation-delay | 动画的延迟时间 |
animation-iteration-count | 动画的播放次数 |
animation-direction | 动画的播放方向,正向还是反向 |
在调用动画之前,我们必须先使用@keyframes规则来定义动画。
语法
@keyframes 动画名称
{
0%{}
……
100%{}
}
@keyframes mycolor
{
from{color:red;}
to{color:green;}
}
使用animation-name属性来定义动画调用的是哪一个动画名称,即@keyframes定义的哪一个规则。
语法
animation-name: 动画名;
animation-name调用的动画名需要和@keyframes规则定义的动画名完全一致(区分大小写),如果不一致将不会产生任何动画效果。
语法
animation-duration: 时间;
animation-duration属性取值是一个时间,单位为秒(s),可以是小数。
语法
animation-timing-function: 取值;
属性值 | 说明 | 速率 |
ease | 默认值,由快到慢,逐渐变慢 | |
linear | 匀速 | |
ease-in | 速度越来越快(即渐显效果) | |
ease-out | 速度越来越慢(即渐隐效果) | |
ease-in-out | 先加速后减速(即渐显渐隐效果) |
语法
animation-delay:时间;
animation-delay属性取值是一个时间,单位为秒(s),可以为小数,其中默认值为0s。
语法
animation-iteration-count: 取值;
animation-iteration-count属性取值有两种:一种是“正整数”,另一种是“infinite”。当取值为n(正整数)时,表示动画播放n次;当取值为infinite时,表示动画播放无数次,也就是循环播放。
语法
animation-direction: 取值;
属性值 | 说明 |
normal | 正方向播放(默认值) |
reverse | 反方向播放 |
alternate | 播放次数是奇数时,动画正方向播放;播放次数是偶数时,动画反方向播放 |
语法
animation-play-state: 取值;
属性值 | 说明 |
running | 播放(默认值) |
paused | 暂停 |