CSS3 - Animations
CSS3
Animation
With CSS3, we can create animations, which can replace animated images, Flash animations, and JavaScripts in many web pages.
To create animations in CSS3, you will have to learn about the @keyframes rule.
The @keyframes rule is where the animation is created. Specify a CSS style inside the @keyframes rule and the animation will gradually change from the current style to the new style.
@keyframes Rule Browser Support
| Property |
Browser Support |
| @keyframes |
|
|
|
|
|
| animation |
|
|
|
|
|
Internet Explorer, Firefox, and Opera does not yet support the @keyframes rule or the animation property.
Chrome and Safari requires the prefix -webkit-.
@keyframes Rule Example
@keyframes myfirst
{
from {background: red;}
to {background: yellow;}
}
@-webkit-keyframes myfirst /* Safari and Chrome */
{
from {background: red;}
to {background: yellow;}
}
When the animation is created in the @keyframe, bind it to a selector, otherwise the animation will have no effect.
Bind the animation to a selector by specifying at least these two CSS3 animation properties:
- Specify the name of the animation
- Specify the duration of the animation
CSS3 Animation Example
Binding the "myfirst" animation to a div element, duration: 5 seconds:
div
{
animation: myfirst 5s;
-webkit-animation: myfirst 5s; /* Safari and Chrome */
}
Note: You must define the name and the duration of the animation. If duration is omitted, the animation will not run, because the default value is 0.
CSS3 Animation
An animation is an effect that lets an element gradually change from one style to another.
You can change as many styles you want, as many times you want.
Specify when the change will happen in percent, or the keywords "from" and "to", which is the same as 0% and 100%.
0% is the beginning of the animation, 100% is when the animation is complete.
For best browser support, you should always define both the 0% and the 100% selectors.
CSS3 Animation Example
Change the background color when the animation is 25%, 50%, and again when the animation is 100% complete:
@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;}
}
CSS3 Animation
CSS3 Animation Change Color and Position Example
@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;}
}
The two examples below sets all the animation properties:
Run an animation called myfirst, with all the animation properties set:
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;
}
The same animation as above, using the shorthand animation property:
div
{
animation: myfirst 5s linear 2s infinite alternate;
/*Safari and Chrome: */
-webkit-animation: myfirst 5s linear 2s infinite alternate;
}
| Property |
Description |
CSS |
| @keyframes |
Specifies the animation |
3 |
| animation |
A shorthand property for all the the animation properties, except
the animation-play-state property |
3 |
| animation-name |
Specifies the name of the @keyframes animation |
3 |
| animation-duration |
Specifies how many seconds or milliseconds an animation takes to
complete one
cycle. Default 0 |
3 |
| animation-timing-function |
Describes how the animation will progress over one cycle of its duration.
Default "ease" |
3 |
| animation-delay |
Specifies when the animation will start. Default 0 |
3 |
| animation-iteration-count |
Specifies the number of times an animation is played. Default 1 |
3 |
| animation-direction |
Specifies whether or not the animation should play in reverse on
alternate cycles. Default "normal" |
3 |
| animation-play-state |
Specifies whether the animation is running or paused. Default "running" |
3 |