This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
Summary
The animation-direction
CSS property indicates whether the animation should play in reverse on alternate cycles.
It is often convenient to use the shorthand property animation
to set all animation properties at once.
Initial value | normal |
---|---|
Applies to | all elements, ::before and ::after pseudo-elements |
Inherited | no |
Media | visual |
Computed value | as specified |
Animation type | discrete |
Canonical order | the unique non-ambiguous order defined by the formal grammar |
Syntax
/* Single animation */ animation-direction: normal; animation-direction: reverse; animation-direction: alternate; animation-direction: alternate-reverse; /* Multiple animations */ animation-direction: normal, reverse; animation-direction: alternate, reverse, normal; /* Global values */ animation-direction: inherit; animation-direction: initial; animation-direction: unset;
Values
normal
- The animation should play forward each cycle. In other words, each time the animation cycles, the animation will reset to the beginning state and start over again. This is the default animation direction setting.
reverse
- The animation plays backward each cycle. Each time the animation cycles, the animation resets to the end state and starts over again.
alternate
- The animation should reverse direction each cycle. When playing in reverse, the animation steps are performed backward. In addition, timing functions are also reversed; for example, an
ease-in
animation is replaced with anease-out
animation when played in reverse. The count to determine if it is an even or an odd iteration starts at one. alternate-reverse
- The animation plays backward on the first play-through, then forward on the next, then continues to alternate. The count to determinate if it is an even or an odd iteration starts at one.
Formal syntax
<single-animation-direction>#where
<single-animation-direction> = normal | reverse | alternate | alternate-reverse
Examples
See CSS animations for examples.
Specifications
Specification | Status | Comment |
---|---|---|
CSS Animations The definition of 'animation-direction' in that specification. |
Working Draft | Initial definition |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | (Yes)-webkit 43.0 |
5.0 (5.0)-moz 16.0 (16.0)[1] |
10 | 12-o 12.50 |
4.0-webkit |
reverse |
19 | 16.0 (16.0) | 10 | (Yes) | (Yes) |
alternate-reverse |
19 | 16.0 (16.0) | 10 | (Yes) | (Yes) |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | ? | ? | 5.0 (5.0)-moz 16.0 (16.0)[1] |
? | ? | ? | (Yes)-webkit 43.0 |
reverse |
No support | ? | 16.0 (16.0) | ? | ? | No support | (Yes)-webkit |
alternate-reverse |
? | ? | 16.0 (16.0) | ? | ? | ? | (Yes)-webkit |
[1] In addition to the unprefixed support, Gecko 44.0 (Firefox 44.0 / Thunderbird 44.0 / SeaMonkey 2.41) added support for a -webkit
prefixed version of the property for web compatibility reasons behind the preference layout.css.prefixes.webkit
, defaulting to false
. Since Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46) the preference defaults to true
.