Skip to content

Commit ba53095

Browse files
committed
[scroll-animations-1] Use options dictionary for getCurrentTime() #8201
1 parent 81b2c13 commit ba53095

File tree

1 file changed

+47
-31
lines changed

1 file changed

+47
-31
lines changed

scroll-animations-1/Overview.bs

Lines changed: 47 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1332,42 +1332,58 @@ spec: cssom-view-1; type: dfn;
13321332
by the {{AnimationTimeline/getCurrentTime()}} method:
13331333

13341334
<pre class="idl">
1335+
dictionary AnimationTimeOptions {
1336+
DOMString? range;
1337+
};
1338+
13351339
[Exposed=Window]
13361340
partial interface AnimationTimeline {
1337-
CSSNumericValue? getCurrentTime(optional CSSOMString rangeName);
1341+
CSSNumericValue? getCurrentTime(optional AnimationTimeOptions options = {});
13381342
};
13391343
</pre>
13401344

1341-
<div algorithm="AnimationTimeline.getCurrentTime()">
1342-
The <code><dfn method for=AnimationTimeline>getCurrentTime(optional |rangeName|)</dfn></code> [=method steps=] are:
1343-
1344-
1. If [=this=] is an [=inactive timeline=],
1345-
return null.
1346-
1347-
1. If |rangeName| is provided:
1348-
1349-
1. If |rangeName| is a valid [=named timeline range=] on [=this=],
1350-
let |progress| be the current progress through that range,
1351-
expressed as a percentage value.
1352-
1353-
Create a [=new unit value=] from (|progress|, "percent")
1354-
and return it.
1345+
<div class='methods'>
13551346

1356-
If the start and end points of the [=named timeline range=] coincide,
1357-
return negative infinity for time values before it,
1358-
positive infinity for time values after it,
1359-
and zero for time values coinciding with that point.
1360-
1361-
2. Otherwise, return null.
1362-
1363-
2. Let |current time|
1364-
be the value of [=this's=] {{AnimationTimeline/currentTime}} internal slot.
1347+
<dt><dfn method for=AnimationTimeline lt='getCurrentTime()'>CSSNumericValue? getCurrentTime(optional AnimationCurrentTimeOptions = {})</dfn>
1348+
<dd>
1349+
Returns a representation of the [=timeline/current time=]
1350+
as follows:
1351+
1352+
<dl class="switch">
1353+
<dt>If {{AnimationTimeOptions/range}} is not provided:
1354+
<dd>
1355+
Returns the value of {{AnimationTimeline/currentTime}} on [=this=],
1356+
but representing millisecond values
1357+
as a new {{CSSUnitValue}} in ''ms'' units
1358+
rather than as a double.
1359+
1360+
<dt>If {{AnimationTimeOptions/range}} is provided
1361+
and is a valid [=named timeline range=] on [=this=]:
1362+
<dd>
1363+
Let |progress| be the current progress through that range,
1364+
expressed as a percentage value.
1365+
1366+
Create a [=new unit value=] from (|progress|, "percent")
1367+
and return it.
1368+
1369+
If the start and end points of the [=named timeline range=] coincide,
1370+
return negative infinity for time values before it,
1371+
positive infinity for time values after it,
1372+
and zero for time values coinciding with that point.
1373+
1374+
<dt>
1375+
If {{AnimationTimeOptions/range}} is provided
1376+
but is not a valid [=named timeline range=] on [=this=]:
1377+
<dd>
1378+
Returns null.
1379+
</dl>
1380+
</div>
13651381

1366-
If [=this=] is a {{ScrollTimeline}},
1367-
create a [=new unit value=] from (|current time|, "percent")
1368-
and return it.
1382+
ISSUE(8201): This method is related to {{AnimationTimeline/currentTime}}
1383+
but not quite the same; should it have a different name?
13691384

1370-
Otherwise,
1371-
create a [=new unit value=] from (|current time|, "ms")
1372-
and return it.
1373-
</div>
1385+
ISSUE: This method returns percentages relative to a ScrollTimeline’s range
1386+
when a range name is provided.
1387+
But for time-based timelines, if a range name is provided,
1388+
should it return percentage progress through that range,
1389+
or time progress through that range?

0 commit comments

Comments
 (0)