css3 动画_CSS3 animation动画属性使用例子

更新时间:2019-11-07    来源:flex    手机版     字体:

【www.bbyears.com--flex】

CSS3提供了一个令人心动的动画属性:animation,尽管利用animation做出来的动画没有flash或者javascript做出的动画流畅绚丽,但是从代码量和开发时间上提供了便利。

animation基本语法是:

animation:name keeping-time animate-function delay times iteration final;

第一个参数:name:

动画的名字,即设定动画过程的名字,CSS3里采用“关键帧 keyframes”来定义动画,方式如下:

@-webkit-keyframes name{
0%{
opacity: 0;
}
100%{
opacity: 1;
}
}

前缀-webkit-表示webkit内核浏览器(Chrome、Safari和变心的opera),以上代码就是定义了一个动画,名叫name,效果是使透明度从0变化到1,0%~100%为整个过程,当然也可以定义多段:0%~20~50%~100%。

第二个参数:keeping-time:

整个动画的持续时间,必须带上时间单位,s或者ms均可;

第三个参数:animate-function:

运动方式(动画方式)的贝赛尔曲线,可取值为:ease、ease-in、ease-out、linear、ease-in-out、cubic-bezier(num1,num2,num3,num4)。

第四个参数:delay:

动画延迟执行的时间,单位也是s或者ms,值得注意的是,延迟时间为0,则也必须加上时间单位,如果写成直接写成0,在FF下动画无效!

第五个参数:times:

动画循环执行的次数,无单位,infinite为无限循环。

第六个参数:iteration:

如果动画循环,循环的方式是:alternate(偶数次向前播放,奇数次向后播放)、normal(每次都向前播放)。

第七个参数:final:

动画的最后(达到100%)时的状态,取值有:backward(回到初始状态)、forwards(停在最终状态)、none、both。

参数介绍完了,用的时候不要忘记加浏览器前缀:

.classname{
-webkit-animation:name 6s linear 0ms infinite normal forwards;
-moz-animation:name 6s linear 0ms infinite normal forwards;
-o-animation:name 6s linear 0ms infinite normal forwards;
animation:name 6s linear 0ms infinite normal forwards;
}

将不带前缀的写在最后面好处是等到animation被所有浏览器认可,可以摈弃前缀的时候可以覆盖前面的样式。

例子、循环动画





JS Bin

 

 
      vison
 

例子、实现心跳动画写法

写法一:

@keyframes pound {
    from { transform: none; }
    50% { transform: scale(1.4); }
    to { transform: none; }
}

.heart {
    /* ... */
    animation: pound .5s infinite;
}

写法一可以精简的地方:from和属于同一个属性可以合并写法。

@keyframes pound {
    from, to { transform: none; }
    50% { transform: scale(1.4); }

}写法一进一步简写:from和to也就是0%-100% 如果这两个值都没有定义,写法可以直接省略。

@keyframes pound {
    50% { transform: scale(1.4); }
}

写法二:使用到alternate,第偶数次向前播放,第奇数次向反方向播放。

@keyframes pound {
    to { transform: scale(1.4); }
}

.heart {
    /* ... */
    animation: pound .25s infinite alternate;
}

本文来源:http://www.bbyears.com/flash/77856.html