css3 动画实例

animation  动画

 

animation-duration

代码实例:

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">
        .animation_duration{
            left:10px;
            top:100px;
            position:absolute;
            -webkit-animation:0.5s ease 1 forwards;
            -webkit-animation-duration:2s;
            -webkit-animation-name:demo;
            -moz-animation:0.5s ease 1 forwards;
            -moz-animation-name:demo;
            -moz-animation-duration:2s;
        }
        @-webkit-keyframes demo{
            0%{left:10px;}
            100%{left:400px;}
        }
    </style>
</head>
<body>
<div class="demo_box animation_duration">我一共运行了2秒钟</div>
</body>
</html>

 

效果:

 

 

animation-name

代码实例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">
        .animation_name{
            left:0;
            top:100px;
            position:absolute;
            -webkit-animation:0.5s 0.5s ease infinite alternate;
            -webkit-animation-name:demo;
            -moz-animation:0.5s 0.5s ease infinite alternate;
            -moz-animation-name:demo;
        }
        @-webkit-keyframes demo{
            0%{left:0;}
            100%{left:400px;}
        }
    </style>
</head>
<body>
<div class="demo_box animation_name">看我没事来回跑</div>
</body>
</html>

效果:

 

 

 

animation-timing-function

语法animation-timing-function: linear | ease | ease-in |

 ease-out | ease-in-out | step-start | step-end | 
steps(<number>[, [ start | end ] ]?) | cubic-bezier(<number>, <number>, <number>, <number>)
[, linear | ease | ease-in | ease-out | ease-in-out | step-start | step-end | steps(<number>[, [ start | end ] ]?) | cubic-bezier(<number>, <number>, <number>, <number>) ]*; 指定对象动画的持续时间 。

 

 

ease:缓解效果,等同于cubic-bezier(0.25,0.1,0.25,1.0)函数,既立方贝塞尔。

linear:线性效果,等同于cubic-bezier(0.0,0.0,1.0,1.0)函数。

ease-in:渐显效果,等同于cubic-bezier(0.42,0,1.0,1.0)函数。

ease-out:渐隐效果,等同于cubic-bezier(0,0,0.58,1.0)函数。

ease-in-out:渐显渐隐效果,等同于cubic-bezier(0.42,0,0.58,1.0)函数。

step-start:马上转跳到动画结束状态。

step-end:保持动画开始状态,直到动画执行时间结束,马上转跳到动画结束状态。

steps(<number>[, [ start | end ] ]?):第一个参数number为指定的间隔数,即把动画分为n步阶段性展示,第二个参数默认为end,设置最后一步的状态,start为结束时的状态,end为开始时的状态,若设置与animation-fill-mode的效果冲突,而以animation-fill-mode的设置为动画结束的状态。

cubic-bezier(<number>, <number>, <number>, <number>):特殊的立方贝塞尔曲线效果。

 代码实例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">

        .demo_box{
            -webkit-animation:f1 3s 0.5s forwards;
            -moz-animation:f1 3s 0.5s forwards;
            position:relative;
            left:10px;
            width:50px;
            height:50px;

            margin:10px 0;
           
        }
        .ease{
            -webkit-animation-timing-function:ease;
            -moz-animation-timing-function:ease;
        }
        .linear{
            -webkit-animation-timing-function:linear;
            -moz-animation-timing-function:linear;
        }
        .ease-in{
            -webkit-animation-timing-function:ease-in;
            -moz-animation-timing-function:ease-in;
        }
        .ease-out{
            -webkit-animation-timing-function:ease-out;
            -moz-animation-timing-function:ease-out;
        }
        .ease-in-out{
            -webkit-animation-timing-function:ease-in-out;
            -moz-animation-timing-function:ease-in-out;
        }
        .step-start{
            -webkit-animation-timing-function:step-start;
            -moz-animation-timing-function:step-start
        }
        .step-end{
            -webkit-animation-timing-function:step-end;
            -moz-animation-timing-function:step-end;
        }
        .steps{
            -webkit-animation-timing-function:steps(2);
            -moz-animation-timing-function:steps(2)
        }
        .cubic-bezier{
            -webkit-animation-timing-function:cubic-bezier(0.52,0,0.58,1.0);
            -moz-animation-timing-function:cubic-bezier(0.52,0,0.58,1.0);
        }
        @-webkit-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }
        @-moz-keyframes f1{
            0%{left:10px;}
            100%{left:500px;background:#f00}
        }


    </style>
</head>
<body>
<div class="demo_box ease">ease</div>
<div class="demo_box linear">linear</div>
<div class="demo_box ease-in">ease-in</div>
<div class="demo_box ease-out">ease-out</div>
<div class="demo_box ease-in-out">ease-in-out</div>
<div class="demo_box step-start">step-start</div>
<div class="demo_box step-end">step-end</div>
<div class="demo_box steps">steps(2)</div>
<div class="demo_box cubic-bezier">cubic-bezier(0.52,0,0.58,1.0)</div>
</body>
</html>

效果:

 

 

 

animation-delay

语法

animation-delay: <time>; 指定对象动画延迟执行的时间 。

0:不延迟,立即执行。

正数:按照设置的时间延迟。

负数:设置时间前的动画将被截断

  代码实例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">

        .demo_box{
            -webkit-animation:f1 3s  forwards;
            -moz-animation:f1 3s  forwards;
            position:relative;
            left:10px;
            width:50px;
            height:50px;

            margin:10px 0;

        }
         .no_delay {
             -webkit-animation-delay: 0s;
             -moz-animation-delay: 0s;
         }
         .delay_2s{
             -webkit-animation-delay: 2s;
             -moz-animation-delay: 2s;
         }
        .delay_-1s{
            -webkit-animation-delay:-1s;
            -moz-animation-delay:-1s;
        }
        @-webkit-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }
        @-moz-keyframes f1{
            0%{left:10px;}
            100%{left:500px;background:#f00}
        }


    </style>
</head>
<body>
<div class="demo_box no_delay">动画立即执行</div>
<div class="demo_box delay_2s">动画延迟2秒执行</div>
<div class="demo_box delay_-1s">动画前一秒被截断</div>

</body>
</html>

效果:

animation-direction

语法

animation-direction: normal | reverse | alternate | alternate-reverse [, normal | reverse | alternate | alternate-reverse ]*; 指定对象动画运动的方向。

  

normal:正常方向。

reverse:动画反向运行,方向始终与normal相反。(FF14.0.1以下不支持)

alternate:动画会循环正反方向交替运动,奇数次(1、3、5……)会正常运动,偶数次(2、4、6……)会反向运动,即所有相关联的值都会反向。

alternate-reverse:动画从反向开始,再正反方向交替运动,运动方向始终与alternate定义的相反。(FF14.0.1以下不支持)

语法

animation-direction: normal | reverse | alternate | alternate-reverse [, normal | reverse | alternate | alternate-reverse ]*; 指定对象动画运动的方向。

 

normal:正常方向。

reverse:动画反向运行,方向始终与normal相反。(FF14.0.1以下不支持)

alternate:动画会循环正反方向交替运动,奇数次(1、3、5……)会正常运动,偶数次(2、4、6……)会反向运动,即所有相关联的值都会反向。

alternate-reverse:动画从反向开始,再正反方向交替运动,运动方向始终与alternate定义的相反。(FF14.0.1以下不支持)

 

   代码实例:

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">

        .demo_box{
            -webkit-animation:f1 2s 0.5s 10 forwards linear;
            -moz-animation:f1 2s 0.5s 10 forwards linear;
            position:relative;
            left:10px;
            width:100px;
            height:100px;
            margin:10px 0;
            overflow:hidden;
        }
        .normal{
            -webkit-animation-direction:normal;
            -moz-animation-direction:normal;
        }
        .reverse{
            -webkit-animation-direction:reverse;
            -moz-animation-direction:reverse;
        }
        .alternate{
            -webkit-animation-direction:alternate;
            -moz-animation-direction:alternate;
        }
        .alternate-reverse{
            -webkit-animation-direction:alternate-reverse;
            -moz-animation-direction:alternate-reverse;
        }
        @-webkit-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }
        @-moz-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }

    </style>
</head>
<body>
<div class="demo_box normal">normal</div>
<div class="demo_box reverse">reverse</div>
<div class="demo_box alternate">alternate</div>
<div class="demo_box alternate-reverse">alternate-reverse</div>
</body>
</html>

 

 

 

 效果:

 

 

 

 

 

animation-iteration-count

 

   代码实例:

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">

        .demo_box{
            -webkit-animation:f1 3s 0.5s  forwards linear;
            -moz-animation:f1 3s 0.5s  forwards linear;
            position:relative;
            left:10px;
            width:50px;
            height:50px;


            margin:10px 0;

        }
        .one {
            -moz-animation-iteration-count: 1;
            -webkit-animation-iteration-count: 1;
        }
        .infinite{
            -moz-animation-iteration-count: infinite;
            -webkit-animation-iteration-count: infinite;
        }
        .some {
            -moz-animation-iteration-count: 2,1;
            -webkit-animation-iteration-count:2,1;
        }

        @-webkit-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }
        @-moz-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }


    </style>
</head>
<body>
<div class="demo_box one">动画执行1次</div>
<div class="demo_box infinite">动画执行无数次</div>
<div class="demo_box some">这个不知道</div>

</body>
</html>

 效果:

animation-fill-mode

语法

animation-fill-mode: none | forwards | backwards | both; 检索或设置对象动画时间之外的状态。

none:默认值。不设置对象动画之外的状态

forwards:结束后保持动画结束时的状态,但当animation-direction为0,则动画不执行,持续保持动画开始时的状态

backwards:结束后返回动画开始时的状态

both:结束后可遵循forwards和backwards两个规则。

    代码实例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">

        .demo_box{
            -webkit-animation:f1 2s 0.5s 1 forwards linear;
            -moz-animation:f1 2s 0.5s 1 forwards linear;
            position:relative;
            left:10px;
            width:100px;
            height:100px;
            margin:10px 0;
            overflow:hidden;
        }
        .forwards{
            -webkit-animation-fill-mode:forwards;
            -moz-animation-fill-mode:forwards;
        }
        .backwards{
            -webkit-animation-fill-mode:backwards;
            -moz-animation-fill-mode:backwards;
        }
        @-webkit-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }
        @-moz-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }

    </style>
</head>
<body>
<div class="demo_box forwards">我留在终点</div>
<div class="demo_box backwards">我只回到原点</div>
</body>
</html>

 

效果: 

animation-play-state2017-08-22

语法

animation-play-state: running | paused 检索或设置对象动画的状态。
代码实例:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>动画</title>
    <style type="text/css">

        .demo_box{
            -webkit-animation:f1 2s 0.5s 10 linear forwards alternate;
            -moz-animation:f1 2s 0.5s 10  linear forwards alternate;
            position:relative;
            left:10px;
            width:100px;
            height:100px;
            margin:10px 0;
            overflow:hidden;
        }
        .play-state:hover{
            -webkit-animation-play-state:paused;
            -moz-animation-play-state:paused;
        }
        @-webkit-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }
        @-moz-keyframes f1{
            0%{left:10px;}
            100%{left:500px;}
        }

    </style>
</head>
<body>
<div class="demo_box play-state">鼠标移过来我就停,移走就运动,好听话哦!</div>
</body>
</html>

 

 
 
 

效果:

 

 

 

转载:http://isux.tencent.com/css3

 

16:47:48   16:47:53

 

posted @ 2017-08-22 16:52  1点  阅读(437)  评论(0编辑  收藏  举报