Web/CSS/animation-direction

From Get docs


The animation-direction CSS property sets whether an animation should play forward, backward, or alternate back and forth between playing the sequence forward and backward.


The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

It is often convenient to use the shorthand property animation to set all animation properties at once.

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 plays forwards 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 value.
reverse
The animation plays backwards each cycle. In other words, each time the animation cycles, the animation will reset to the end state and start over again. Animation steps are performed backwards, and timing functions are also reversed. For example, an ease-in timing function becomes ease-out.
alternate
The animation reverses direction each cycle, with the first iteration being played forwards. The count to determine if a cycle is even or odd starts at one.
alternate-reverse
The animation reverses direction each cycle, with the first iteration being played backwards. The count to determine if a cycle is even or odd starts at one.

Note: When you specify multiple comma-separated values on an animation-* property, they will be assigned to the animations specified in the animation-name property in different ways depending on how many there are. For more information, see Setting multiple animation property values.


Formal definition

Initial value normal
Applies to all elements, ::before and ::after pseudo-elements
Inherited no
Computed value as specified
Animation type discrete

Formal syntax

<single-animation-direction>#where <single-animation-direction> = normal | reverse | alternate | alternate-reverse

Examples

The animation is  playing reversed

HTML

<div class="box"></div>

CSS

.box {
  background-color: rebeccapurple;
  border-radius: 10px;
  width: 100px;
  height: 100px;
  animation-name: rotate; 
  animation-duration: 0.7s;
  animation-direction: reverse;
}

@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

See CSS animations for examples.

Specifications

Specification Status Comment
CSS AnimationsThe definition of 'animation-direction' in that specification. Working Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
animation-direction

Chrome Full support 43


Full support 43


Full support 3

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Edge Full support 12


Full support 12


Full support 12

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Firefox Full support 16


Full support 16


Full support 49

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit- Full support 44

Prefixed' Disabled'

Prefixed' Implemented with the vendor prefix: -webkit- Disabled' From version 44: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true). To change preferences in Firefox, visit about:config. Full support 5

Prefixed'

Prefixed' Implemented with the vendor prefix: -moz-

IE

Full support 10

Opera Full support 30


Full support 30


Full support 15

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit- No support 12.1 — 15


No support 12 — 15

Prefixed'

Prefixed' Implemented with the vendor prefix: -o-

Safari Full support 9


Full support 9


Full support 4

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

WebView Android Full support 43


Full support 43


Full support ≤37

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Chrome Android Full support 43


Full support 43


Full support 18

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Firefox Android Full support 16


Full support 16


Full support 49

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit- Full support 44

Prefixed' Disabled'

Prefixed' Implemented with the vendor prefix: -webkit- Disabled' From version 44: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true). To change preferences in Firefox, visit about:config. Full support 5

Prefixed'

Prefixed' Implemented with the vendor prefix: -moz-

Opera Android Full support 30


Full support 30


Full support 14

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit- No support 12.1 — 14


No support 12 — 14

Prefixed'

Prefixed' Implemented with the vendor prefix: -o-

Safari iOS Full support 9


Full support 9


Full support 3.2

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

Samsung Internet Android Full support 4.0


Full support 4.0


Full support 1.0

Prefixed'

Prefixed' Implemented with the vendor prefix: -webkit-

alternate-reverse Chrome

Full support 19

Edge

Full support 12

Firefox

Full support 16

IE

Full support 10

Opera

Full support 12.1

Safari

Full support 6

WebView Android

Full support ≤37

Chrome Android

Full support 25

Firefox Android

Full support 16

Opera Android

Full support 12.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.5

reverse Chrome

Full support 19

Edge

Full support 12

Firefox

Full support 16

IE

Full support 10

Opera

Full support 12.1

Safari

Full support 6

WebView Android

Full support ≤37

Chrome Android

Full support 25

Firefox Android

Full support 16

Opera Android

Full support 12.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.5

Legend

Full support  
Full support
User must explicitly enable this feature.'
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also