css3中的animation

CSS3的Animation有八个属性:
animation-name
运动的名称(规定需要绑定的keyframe 名称)

animation-duration
运动时间

animation-delay
运动延迟时间

animation-iteration-count
规定动画播放的次数(infinite表示无限次播放)

animation-direction
规定是否应该轮流反向播放动画。
(normal正常播放,默认值;
alternate:轮流反向播放;)

animation-play-state
规定动画正在运行还是暂停。
(paused:规定动画已暂停;
running:规定动画正在播放。)

animation-fill-mode
动画在播放之前或之后,其动画效果是否可见。
(none:不改变默认行为;
forwards:当动画完成后,保持最后一个属性值(在最后一个关键帧中定义);
backwards:在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值(在第一个关键帧中定义);
both:向前和向后填充模式都被应用;)

animation-timing-function
规定动画的速度曲线
(linear:匀速;
ease:低速开始,加速,结束前变慢;
ease-in:加速;
ease-out:减速;
ease-in-out:低速开始和结束;
cubic-bezier(n,n,n,n):在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值)。

用css3的animation完成一个动画,当只有这个动画完成时才执行另一个事件。有两种方法:
一、设置定时器:
设定一个和动画时长一样的time,过time事件去执行这个函数。
setTimeout(function(){ },time);
二、当-webkit-animation动画结束时有一个webkitAnimationEnd事件,只要监听这个事件就可以了。
不同浏览器的AnimationEnd写法 (webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend)
例子:
-webkit-animation动画其实有三个事件:
开始事件 webkitAnimationStart
结束事件 webkitAnimationEnd
重复运动事件 webkitAnimationIteration
代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
                list-style: none;
            }
            ul{
                width: 0px;
                height: 0px;
                position: relative;
                margin: 100px auto;
                opacity: 0;
                animation: 2s move ease;
            }
            li{
                width: 50%;
                height: 50%;
                float: left;
                border-radius: 0 80%;
            }
            li:nth-child(2){
                transform: rotate(90deg);
            }
            li:nth-child(3){
                transform: rotate(90deg);
            }
            ul.move{
                width: 240px;
                height: 240px;
                opacity: 1;
                animation: 1s rotate linear infinite;
            }
            @keyframes rotate{
                to{
                    transform: rotate(360deg);
                }
            }
            @keyframes move{
                100%{
                    width: 240px;
                    height: 240px;
                    opacity: 1;
                }
            }
        </style>
        <script type="text/javascript">
            document.addEventListener('DOMContentLoaded',function(){
                var oUl=document.querySelector('ul');
                oUl.addEventListener('webkitAnimationEnd',function(){
                    oUl.classList.add('move');
                },false);
            },false);
        </script>
    </head>
    <body>
        <ul>
            <li style="background: deeppink;"></li>
            <li style="background: deepskyblue;"></li>
            <li style="background: gold;"></li>
            <li style="background: greenyellow;"></li>
        </ul>
    </body>
</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在CSS3中,有一个新的属性可以用来做一些简单的动画效果,这就是animation,中文意思就是动画。 一、首先我...
    大春春阅读 8,598评论 1 9
  • 1.浏览器支持情况 Internet Explorer 10、Firefox 以及 Opera 支持 animat...
    Jess_ce阅读 1,657评论 0 1
  • 一、css3选择器### 1:兄弟相邻选择器 element+element1).element+element ...
    Devour_z阅读 1,306评论 0 0
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,826评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,778评论 0 2