Easy Tutorial
❮ Css3 Mediaqueries Css3 2Dtransforms ❯

CSS3 Animation


CSS3 Animation

CSS3 can create animations, which can replace many web animation images, Flash animations, and JavaScript-implemented effects.



CSS3 @keyframes Rule

To create a CSS3 animation, you need to understand the @keyframes rule.

The @keyframes rule is used to create animations.

Within the @keyframes rule, you specify a CSS style and the animation will gradually change from the current style to the new style.


Browser Support

The numbers in the table indicate the first browser version that supports the property.

The numbers following -webkit-, -ms-, or -moz- indicate the first browser version that supports the prefixed property.

Property
@keyframes 43.0 <br>4.0 -webkit- 10.0 16.0 <br>5.0 -moz- 9.0 <br>4.0 -webkit- 30.0 <br>15.0 -webkit- <br>12.0 -o-
animation 43.0 <br>4.0 -webkit- 10.0 16.0 <br>5.0 -moz- 9.0 <br>4.0 -webkit- 30.0 <br>15.0 -webkit- <br>12.0 -o-

Example

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

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

CSS3 Animation

When creating an animation with @keyframes, bind it to a selector, otherwise the animation will have no effect.

Specify at least these two CSS3 animation properties for a selector:

Example

Bind the "myfirst" animation to the div element, duration: 5 seconds:

div
{
    animation: myfirst 5s;
    -webkit-animation: myfirst 5s; /* Safari and Chrome */
}

Note: You must define the animation name and the duration. If the duration is omitted, the animation will not run because the default value is 0.


What is CSS3 Animation?

Animation is a gradual change from one style to another.

You can change as many styles as you want, as many times as you want.

Use percentages to specify the time of change, or use the keywords "from" and "to", which are equivalent to 0% and 100%.

0% is the start of the animation, and 100% is the completion of the animation.

For the best browser support, you should always define the 0% and 100% selectors.

Example

Change the background color at 25% and 50%, then change it again when the animation completes at 100%:

@keyframes myfirst
{
    0%   {background: red;}
    25%  {background: yellow;}
    50%  {background: blue;}
    100% {background: green;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
    0%   {background: red;}
    25%  {background: yellow;}
    50%  {background: blue;}
    100% {background: green;}
}

Example

Change the background color and position:

@keyframes myfirst
{
    0%   {background: red; left:0px; top:0px;}
    25%  {background: yellow; left:200px; top:0px;}
    50%  {background: blue; left:200px; top:200px;}
    75%  {background: green; left:0px; top:200px;}
    100% {background: red; left:0px; top:0px;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
    0%   {background: red; left:0px; top:0px;}
25%  {background: yellow; left: 200px; top: 0px;}
50%  {background: blue; left: 200px; top: 200px;}
75%  {background: green; left: 0px; top: 200px;}
100% {background: red; left: 0px; top: 0px;}

CSS3 Animation Properties

The following table lists the @keyframes rule and all animation properties:

Property Description CSS
@keyframes Specifies the animation. 3
animation A shorthand property for all animation properties. 3
animation-name Specifies the name of the @keyframes animation. 3
animation-duration Specifies the length of time an animation takes to complete one cycle. Default is 0. 3
animation-timing-function Specifies the speed curve of the animation. Default is "ease". 3
animation-fill-mode Specifies a style for the element when the animation is not playing (when it is finished, or when it has a delay). 3
animation-delay Specifies when the animation will start. Default is 0. 3
animation-iteration-count Specifies the number of times an animation is played. Default is 1. 3
animation-direction Specifies whether or not the animation should play in reverse on alternate cycles. Default is "normal". 3
animation-play-state Specifies whether the animation is running or paused. Default is "running". 3

The following two examples set all animation properties:

Example

Run the myfirst animation, setting all properties:

div
{
    animation-name: myfirst;
    animation-duration: 5s;
    animation-timing-function: linear;
    animation-delay: 2s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-play-state: running;
    /* Safari and Chrome: */
    -webkit-animation-name: myfirst;
    -webkit-animation-duration: 5s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-delay: 2s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-direction: alternate;
    -webkit-animation-play-state: running;
}

Example

The same animation as above, but using the shorthand animation property:

div
{
    animation: myfirst 5s linear 2s infinite alternate;
    /* Safari and Chrome: */
    -webkit-animation: myfirst 5s linear 2s infinite alternate;
}
-webkit-animation: myfirst 5s linear 2s infinite alternate;
}
❮ Css3 Mediaqueries Css3 2Dtransforms ❯