欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS—动画之animation

程序员文章站 2022-03-01 15:04:56
...

目录

一、概述

二、详解

三、代码实例


一、概述

animation是CSS3新增的一个属性,可以设置元素的动画特效。

二、详解

animation定义和用法

animation是一个复合属性,适用于所有元素,包含伪对象:after和:before。如果提供多组属性值,中间用逗号隔开。

animation: animation-name||animation-duration||animation-timing-function
                ||animation-delay||animation-iteration-count||animation-direction;

animation属性值

animation-name:            设置元素对应的动画名称, 必须与规则@keyframes配合使用, 因为动画名称由@keyframes定义
animation-duration:        设置元素动画的持续时间
animation-timing-function: 设置元素动画的过渡类型
animation-delay:           设置元素动画的延迟时间
animation-iteration-count: 设置元素动画的循环次数
animation-direction:       设置元素动画在循环中是否反向运动
// animation-timing-function属性值
linear:      线性过渡, 等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
ease:        平滑过渡, 等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
ease-in:     由慢到快, 等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
ease-out:    由快到慢, 等同于贝塞尔曲线(0, 0, 0.58, 1.0)
ease-in-out: 由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
cubic-bezier(<number>, <number>, <number>, <number>): 特定的贝塞尔曲线类型, 4个数值需在[0, 1]区间内
// animation-iteration-count属性值
infinite: 无限循环
<number>: 指定对象动画的具体循环次数
// animation-direction属性值
normal:    正常方向
alternate: 正常与反向交替

@keyframes规则

@keyframes规则用于创建动画,语法如下代码所示。@keyframes关键词后面跟动画的名称。

@keyframes myfirst
{
    from {background: red;}
    to {background: yellow;}
}

/* Firefox */
@-moz-keyframes myfirst   
{
    from {background: red;}
    to {background: yellow;}
}

/* Safari 和 Chrome */
@-webkit-keyframes myfirst 
{
    from {background: red;}
    to {background: yellow;}
}

/* Opera */
@-o-keyframes myfirst 
{
    from {background: red;}
    to {background: yellow;}
}

/* ie*/
@-ms-keyframes myfirst 
{
    from {background: red;}
    to {background: yellow;}
}

三、代码实例

实例一:改变div背景颜色

<style>
    div {
        width: 200px;
        height: 200px;
        background-color: red;
        border-radius: 50%;
        animation: myfirst 1s ease 0s 2 alternate;
        -moz-animation: myfirst 1s ease 0s 2 alternate;
        -webkit-animation: myfirst 1s ease 0s 2 alternate;
        -o-animation: myfirst 1s ease 0s 2 alternate;
        -ms-animation: myfirst 1s ease 0s 2 alternate;
    }
    @keyframes myfirst
    {
        0% { background-color: red; }
        25% { background-color: yellow; }
        50% { background-color: blue; }
        75% { background-color: green; }
        100% { background-color: black; }
    }

    @-moz-keyframes myfirst
    {
        0% { background-color: red; }
        25% { background-color: yellow; }
        50% { background-color: blue; }
        75% { background-color: green; }
        100% { background-color: black; }
    }

    @-webkit-keyframes myfirst
    {
        0% { background-color: red; }
        25% { background-color: yellow; }
        50% { background-color: blue; }
        75% { background-color: green; }
        100% { background-color: black; }
    }
    @-o-keyframes myfirst
    {
        0% { background-color: red; }
        25% { background-color: yellow; }
        50% { background-color: blue; }
        75% { background-color: green; }
        100% { background-color: black; }
    }
</style>
<div></div>

 

相关标签: CSS