// GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) // Source: Web Animations (https://drafts.csswg.org/web-animations-1/) [Exposed=Window] interface AnimationTimeline { readonly attribute double? currentTime; }; dictionary DocumentTimelineOptions { DOMHighResTimeStamp originTime = 0; }; [Exposed=Window] interface DocumentTimeline : AnimationTimeline { constructor(optional DocumentTimelineOptions options = {}); }; [Exposed=Window] interface Animation : EventTarget { constructor(optional AnimationEffect? effect = null, optional AnimationTimeline? timeline); attribute DOMString id; attribute AnimationEffect? effect; attribute AnimationTimeline? timeline; attribute double playbackRate; readonly attribute AnimationPlayState playState; readonly attribute AnimationReplaceState replaceState; readonly attribute boolean pending; readonly attribute Promise ready; readonly attribute Promise finished; attribute EventHandler onfinish; attribute EventHandler oncancel; attribute EventHandler onremove; undefined cancel(); undefined finish(); undefined play(); undefined pause(); undefined updatePlaybackRate(double playbackRate); undefined reverse(); undefined persist(); [CEReactions] undefined commitStyles(); }; enum AnimationPlayState { "idle", "running", "paused", "finished" }; enum AnimationReplaceState { "active", "removed", "persisted" }; [Exposed=Window] interface AnimationEffect { EffectTiming getTiming(); ComputedEffectTiming getComputedTiming(); undefined updateTiming(optional OptionalEffectTiming timing = {}); }; dictionary EffectTiming { FillMode fill = "auto"; double iterationStart = 0.0; unrestricted double iterations = 1.0; PlaybackDirection direction = "normal"; DOMString easing = "linear"; }; dictionary OptionalEffectTiming { double delay; double endDelay; FillMode fill; double iterationStart; unrestricted double iterations; (unrestricted double or DOMString) duration; PlaybackDirection direction; DOMString easing; }; enum FillMode { "none", "forwards", "backwards", "both", "auto" }; enum PlaybackDirection { "normal", "reverse", "alternate", "alternate-reverse" }; dictionary ComputedEffectTiming : EffectTiming { double? progress; unrestricted double? currentIteration; }; [Exposed=Window] interface KeyframeEffect : AnimationEffect { constructor(Element? target, object? keyframes, optional (unrestricted double or KeyframeEffectOptions) options = {}); constructor(KeyframeEffect source); attribute Element? target; attribute CSSOMString? pseudoElement; attribute CompositeOperation composite; sequence getKeyframes(); undefined setKeyframes(object? keyframes); }; dictionary BaseComputedKeyframe { double? offset = null; double computedOffset; DOMString easing = "linear"; CompositeOperationOrAuto composite = "auto"; }; dictionary BasePropertyIndexedKeyframe { (double? or sequence) offset = []; (DOMString or sequence) easing = []; (CompositeOperationOrAuto or sequence) composite = []; }; dictionary BaseKeyframe { double? offset = null; DOMString easing = "linear"; CompositeOperationOrAuto composite = "auto"; }; dictionary KeyframeEffectOptions : EffectTiming { CompositeOperation composite = "replace"; CSSOMString? pseudoElement = null; }; enum CompositeOperation { "replace", "add", "accumulate" }; enum CompositeOperationOrAuto { "replace", "add", "accumulate", "auto" }; interface mixin Animatable { Animation animate(object? keyframes, optional (unrestricted double or KeyframeAnimationOptions) options = {}); sequence getAnimations(optional GetAnimationsOptions options = {}); }; dictionary KeyframeAnimationOptions : KeyframeEffectOptions { DOMString id = ""; AnimationTimeline? timeline; }; dictionary GetAnimationsOptions { boolean subtree = false; }; partial interface Document { readonly attribute DocumentTimeline timeline; }; partial interface mixin DocumentOrShadowRoot { sequence getAnimations(); }; Element includes Animatable;