-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathweb-animations-2.idl
141 lines (117 loc) · 4.6 KB
/
web-animations-2.idl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
// 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;
attribute AnimationTrigger? trigger;
attribute (TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) rangeStart;
attribute (TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) rangeEnd;
readonly attribute double? overallProgress;
};
[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;
};
enum FillMode { "none", "forwards", "backwards", "both", "auto" };
[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";
AnimationTrigger? trigger;
};
[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;
};
[Exposed=Window]
interface AnimationTrigger {
constructor(optional AnimationTriggerOptions options = {});
attribute AnimationTimeline timeline;
attribute AnimationTriggerType type;
attribute any rangeStart;
attribute any rangeEnd;
attribute any exitRangeStart;
attribute any exitRangeEnd;
};
dictionary AnimationTriggerOptions {
AnimationTimeline? timeline;
AnimationTriggerType? type = "once";
(TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) rangeStart = "normal";
(TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) rangeEnd = "normal";
(TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) exitRangeStart = "auto";
(TimelineRangeOffset or CSSNumericValue or CSSKeywordValue or DOMString) exitRangeEnd = "auto";
};
enum AnimationTriggerType { "once", "repeat", "alternate", "state" };