// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into webref
// (https://github.com/w3c/webref)
// Source: Web Animations Level 2 (https://drafts.csswg.org/web-animations-2/)
[Exposed=Window]
partial interface AnimationTimeline {
readonly attribute CSSNumberish? currentTime;
readonly attribute CSSNumberish? duration;
Animation play (optional AnimationEffect? effect = null);
};
[Exposed=Window]
partial interface Animation {
attribute CSSNumberish? startTime;
attribute CSSNumberish? currentTime;
readonly attribute double? progress;
};
[Exposed=Window]
partial interface AnimationEffect {
// Timing hierarchy
readonly attribute GroupEffect? parent;
readonly attribute AnimationEffect? previousSibling;
readonly attribute AnimationEffect? nextSibling;
undefined before (AnimationEffect... effects);
undefined after (AnimationEffect... effects);
undefined replace (AnimationEffect... effects);
undefined remove ();
};
partial dictionary EffectTiming {
double delay;
double endDelay;
double playbackRate = 1.0;
(unrestricted double or CSSNumericValue or DOMString) duration = "auto";
};
partial dictionary OptionalEffectTiming {
double playbackRate;
};
partial dictionary ComputedEffectTiming {
CSSNumberish startTime;
CSSNumberish endTime;
CSSNumberish activeDuration;
CSSNumberish? localTime;
};
[Exposed=Window]
interface GroupEffect {
constructor(sequence<AnimationEffect>? children,
optional (unrestricted double or EffectTiming) timing = {});
readonly attribute AnimationNodeList children;
readonly attribute AnimationEffect? firstChild;
readonly attribute AnimationEffect? lastChild;
GroupEffect clone ();
undefined prepend (AnimationEffect... effects);
undefined append (AnimationEffect... effects);
};
[Exposed=Window]
interface AnimationNodeList {
readonly attribute unsigned long length;
getter AnimationEffect? item (unsigned long index);
};
[Exposed=Window]
interface SequenceEffect : GroupEffect {
constructor(sequence<AnimationEffect>? children,
optional (unrestricted double or EffectTiming) timing = {});
SequenceEffect clone ();
};
partial interface KeyframeEffect {
attribute IterationCompositeOperation iterationComposite;
};
partial dictionary KeyframeEffectOptions {
IterationCompositeOperation iterationComposite = "replace";
};
enum IterationCompositeOperation { "replace", "accumulate" };
callback EffectCallback = undefined (double? progress,
(Element or CSSPseudoElement) currentTarget,
Animation animation);
dictionary TimelineRangeOffset {
CSSOMString? rangeName;
CSSNumericValue offset;
};
partial dictionary KeyframeAnimationOptions {
(TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) rangeStart = "normal";
(TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) rangeEnd = "normal";
};
[Exposed=Window]
interface AnimationPlaybackEvent : Event {
constructor(DOMString type, optional AnimationPlaybackEventInit
eventInitDict = {});
readonly attribute CSSNumberish? currentTime;
readonly attribute CSSNumberish? timelineTime;
};
dictionary AnimationPlaybackEventInit : EventInit {
CSSNumberish? currentTime = null;
CSSNumberish? timelineTime = null;
};