This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The AnimationEffectTiming interface of the Web Animations API is comprised of timing properties. It is returned by the timing attribute of a KeyframeEffect.
This interface inherits its properties from AnimationEffectTimingReadOnly, but in a non-read only form.
Properties
This interface inherits its properties from its parent, AnimationEffectTimingReadOnly, in a non-read only form.
AnimationEffectTimingReadOnly.delay- The number of milliseconds to delay the start of the animation. Defaults to
0. AnimationEffectTimingReadOnly.endDelay- The number of milliseconds to delay after the end of an animation. This is primarily of use when sequencing animations based on the end time of another animation. Defaults to
0. AnimationEffectTimingReadOnly.fill- Dictates whether the animation's effects should be reflected by the element(s) state prior to playing (
backwards), retained after the animation has completed playing (forwards), orboth. Defaults tonone. AnimationEffectTimingReadOnly.iterationStart- A number representing the which repetition the animation begins at and its progress through it.
AnimationEffectTimingReadOnly.iterations- The number of times the animation should repeat. Defaults to
1, and can also take a value of infinity to make it repeat infinitely. AnimationEffectTimingReadOnly.duration- The number of milliseconds each iteration of the animation takes to complete. Defaults to
0. AnimationEffectReadOnly.direction- Whether the animation runs forwards (
normal), backwards (reverse), switches direction after each iteration (alternate), or runs backwards and switches direction after each iteration (alternate-reverse). Defaults tonormal. AnimationEffectTimingReadOnly.easing- The rate of the animation's change over time. Accepts the pre-defined values
linear,ease,ease-in,ease-out, andease-in-out, or a custom cubic-bezier value likecubic-bezier(0.42, 0, 0.58, 1). Defaults tolinear.
Examples
In the Growing and Shrinking Alice example, we set Alice's animation — aliceChange — at halfway complete by getting the duration of its effect's timing attribute, which returns an AnimationEffectTiming object:
aliceChange.currentTime = aliceChange.effect.timing.duration / 2 ;
Specifications
| Specification | Status | Comment |
|---|---|---|
| Web Animations The definition of 'AnimationEffectTiming' in that specification. |
Working Draft | Editor's draft. |
Browser compatibility
| Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | No | ? | 481 2 | No | Yes | No |
| Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
|---|---|---|---|---|---|---|---|
| Basic support | ? | ? | No | 481 2 | No | No | ? |
1. The preference is set to true by default on Firefox Nightly and on Firefox Developer Edition, but not on the official release.
2. From version 48: this feature is behind the dom.animations-api.core.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
See also
KeyframeEffect- Web Animations API
- Inherits from
AnimationEffectTimingReadOnly

