Skip to content

Commit 260f194

Browse files
author
Jordan Taylor
committed
Moved changes to Web-Animations-2 from Web-Animations-1
1 parent fad6e37 commit 260f194

File tree

2 files changed

+589
-120
lines changed

2 files changed

+589
-120
lines changed

web-animations-1/Overview.bs

Lines changed: 20 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -817,14 +817,6 @@ which is used to fix the animation's output <a>time value</a>, called its
817817
<a>current time</a>, in circumstances such as pausing.
818818
The <a>hold time</a> is initially <a>unresolved</a>.
819819

820-
In addition to the <a>hold time</a>, an <a>animation</a> maintains a
821-
<dfn>hold phase</dfn> which is set along with the <a>hold time</a> to determine
822-
the <a>current phase</a> of an <a>animation</a> with a fixed
823-
<a>current time</a>.
824-
The <a>hold phase</a> has the same range of values as the [=timeline phase=] and
825-
can be set or unset.
826-
The <a>hold phase</a> is initially unset.
827-
828820
In order to establish the relative ordering of conflicting <a>animations</a>,
829821
animations are appended to a <dfn>global animation list</dfn> in the order
830822
in which they are created. Certain <a lt="animation class">classes of
@@ -844,7 +836,7 @@ follows:
844836
1. Let the <a>timeline</a> of <var>animation</var> be <var>new timeline</var>.
845837
1. If the [=start time=] of <var>animation</var> is <a
846838
lt=unresolved>resolved</a>, make <var>animation</var>'s <a>hold time</a>
847-
<a>unresolved</a> and make <a>hold phase</a> unset.
839+
<a>unresolved</a>.
848840

849841
Note: This step ensures that the <a>finished play state</a> of
850842
<var>animation</var> is not &ldquo;sticky&rdquo; but is re-evaluated
@@ -933,37 +925,6 @@ matching condition from below:
933925

934926
</div>
935927

936-
### The current phase of an animation ### {#the-current-phase-of-an-animation}
937-
938-
In addition to their <a>current time</a>, <a>animations</a> provide their
939-
<a>associated effects</a> with a <dfn>current phase</dfn>.
940-
This is used in determining the animations effect's phase in certain boundary
941-
conditions.
942-
943-
An <a>animation's</a> <a>current phase</a> has the same range of values as the
944-
[=timeline phase=].
945-
946-
The <a>current phase</a> is calculated from the first matching condition from
947-
below:
948-
949-
<div class="switch">
950-
951-
: If the animation's <a>hold phase</a> is set,
952-
:: The <a>current phase</a> is the animation's <a>hold phase</a>.
953-
954-
: If <em>either</em> of the following are true:
955-
956-
1. the animation has no associated <a>timeline</a>, or
957-
1. the animation's [=start time=] is <a>unresolved</a>.
958-
959-
:: The <a>current phase</a> is [=timeline inactive phase|inactive=].
960-
961-
: Otherwise,
962-
:: The <a>current phase</a> is the [=timeline phase=] of the associated
963-
<a>timeline</a>.
964-
965-
</div>
966-
967928
### Setting the current time of an animation ### {#setting-the-current-time-of-an-animation}
968929

969930
The <a>current time</a> of an animation can be set to a new value to
@@ -997,9 +958,7 @@ an animation, <var>animation</var>, to <var>seek time</var> is as follows:
997958
<a lt="inactive timeline">inactive</a>, or
998959
* <var>animation</var>'s [=playback rate=] is 0,
999960

1000-
:: 1. Set <var>animation</var>'s <a>hold time</a> to <var>seek time</var>.
1001-
:: 1. Set <var>animation</var>'s <a>hold phase</a> to
1002-
[=timeline active phase|active=].
961+
:: Set <var>animation</var>'s <a>hold time</a> to <var>seek time</var>.
1003962

1004963
: Otherwise,
1005964
:: Set <var>animation</var>'s [=start time=] to the result of evaluating
@@ -1029,8 +988,6 @@ The procedure to <dfn>set the current time</dfn> of an animation,
1029988
1. If <var>animation</var> has a <a>pending pause task</a>, synchronously
1030989
complete the pause operation by performing the following steps:
1031990
1. Set <var>animation</var>'s <a>hold time</a> to <var>seek time</var>.
1032-
1. Set <var>animation</var>'s <a>hold phase</a> to
1033-
[=timeline active phase|active=].
1034991
1. [=Apply any pending playback rate=] to |animation|.
1035992
1. Make <var>animation</var>'s [=start time=] <a>unresolved</a>.
1036993
1. Cancel the <a>pending pause task</a>.
@@ -1054,7 +1011,7 @@ is as follows:
10541011

10551012
1. If <var>timeline time</var> is <a>unresolved</a> and <var>new start
10561013
time</var> is <a lt="unresolved">resolved</a>, make <var>animation</var>'s
1057-
<a>hold time</a> <a>unresolved</a> and make <a>hold phase</a> unset.
1014+
<a>hold time</a> <a>unresolved</a>.
10581015

10591016
<p class=note>
10601017
This preserves the invariant that when we don't have an active timeline it
@@ -1069,29 +1026,23 @@ is as follows:
10691026
previous step which may cause the <a>current time</a> to become
10701027
<a>unresolved</a>.
10711028

1072-
1. Let <var>previous current phase</var> be <var>animation</var>'s <a>current
1073-
phase</a>.
1074-
10751029
1. [=Apply any pending playback rate=] on |animation|.
10761030

10771031
1. Set <var>animation</var>'s [=start time=] to <var>new start time</var>.
10781032

1079-
1. Update <var>animation</var>'s <a>hold time</a> and <a>hold phase</a> based
1080-
on the first matching condition from the following,
1033+
1. Update <var>animation</var>'s <a>hold time</a> based on the first matching
1034+
condition from the following,
10811035

10821036
<div class="switch">
10831037

10841038
: If <var>new start time</var> is <a lt="unresolved">resolved</a>,
10851039
:: If <var>animation</var>'s [=playback rate=] is not zero,
1086-
make <var>animation</var>'s <a>hold time</a> <a>unresolved</a> and make
1087-
<a>hold phase</a> unset.
1040+
make <var>animation</var>'s <a>hold time</a> <a>unresolved</a>.
10881041

10891042
: Otherwise (<var>new start time</var> is <a>unresolved</a>),
10901043
:: Set <var>animation</var>'s <a>hold time</a> to <var>previous current
10911044
time</var> even if <var>previous current time</var> is
10921045
<a>unresolved</a>.
1093-
:: Set <var>animation</var>'s <a>hold phase</a> to <var>previous current
1094-
phase</var>.
10951046

10961047
</div>
10971048

@@ -1239,13 +1190,10 @@ as CSS Animations [[CSS-ANIMATIONS-1]].
12391190

12401191
: If |has finite timeline| is true,
12411192
:: 1. Set <var>animation</var>'s <a>start time</a> to <var>seek time</var>.
1242-
1. Let |animation|'s [=hold time=] be <a>unresolved</a> and
1243-
<a>hold phase</a> be unset.
1193+
1. Let |animation|'s [=hold time=] be <a>unresolved</a>.
12441194
1. [=Apply any pending playback rate=] on |animation|.
12451195
: Otherwise,
1246-
:: 1. Set <var>animation</var>'s <a>hold time</a> to <var>seek time</var>.
1247-
1. Set <var>animation</var>'s <a>hold phase</a> to
1248-
[=timeline active phase|active=].
1196+
:: Set <var>animation</var>'s <a>hold time</a> to <var>seek time</var>.
12491197

12501198
</div>
12511199

@@ -1299,7 +1247,7 @@ as CSS Animations [[CSS-ANIMATIONS-1]].
12991247
1. Set the [=start time=] of |animation| to |new start time|.
13001248

13011249
1. If |animation|'s [=playback rate=] is not 0, make |animation|'s
1302-
[=hold time=] [=unresolved=] and make [=hold phase=] unset.
1250+
[=hold time=] [=unresolved=].
13031251

13041252
: If |animation|'s [=start time=] is resolved and |animation| has
13051253
a [=pending playback rate=],
@@ -1311,8 +1259,7 @@ as CSS Animations [[CSS-ANIMATIONS-1]].
13111259
1. [=Apply any pending playback rate=] on |animation|.
13121260

13131261
1. If |animation|'s [=playback rate=] is zero, let |animation|'s
1314-
[=hold time=] be |current time to match| and let [=hold phase=]
1315-
be the |animation|'s [=current phase=].
1262+
[=hold time=] be |current time to match|.
13161263

13171264
1. Let |new start time| be the result of evaluating
13181265
<code>|ready time| - |current time to match| /
@@ -1425,10 +1372,7 @@ follows:
14251372
: If |has finite timeline| is true,
14261373
:: Set <var>animation</var>'s <a>start time</a> to <var>seek time</var>.
14271374
: Otherwise,
1428-
:: 1. Set <var>animation</var>'s <a>hold time</a> to
1429-
<var>seek time</var>.
1430-
1. Set <var>animation</var>'s <a>hold phase</a> to
1431-
[=timeline active phase|active=].
1375+
:: Set <var>animation</var>'s <a>hold time</a> to <var>seek time</var>.
14321376

14331377
</div>
14341378

@@ -1459,8 +1403,7 @@ follows:
14591403
<em>not</em> resolved,
14601404
let <var>animation</var>'s <a>hold time</a> be the result of evaluating
14611405
<code>(<var>ready time</var> - [=start time=]) &times;
1462-
[=playback rate=]</code> and let <var>animation</var>'s
1463-
<a>hold phase</a> be the <var>animation</var>'s <a>current phase</a>.
1406+
[=playback rate=]</code>.
14641407

14651408
Note: The <a>hold time</a> might be already set if the animation
14661409
is <a lt="finished play state">finished</a>, or if the animation
@@ -1610,34 +1553,29 @@ follows:
16101553
* <var>animation</var> does <em>not</em> have a <a>pending play task</a>
16111554
or a <a>pending pause task</a>,
16121555

1613-
then update <var>animation</var>'s <a>hold time</a> and <a>hold phase</a>
1614-
based on the first matching condition for <var>animation</var> from below,
1615-
if any:
1556+
then update <var>animation</var>'s <a>hold time</a> based on the first
1557+
matching condition for <var>animation</var> from below, if any:
16161558

16171559
<div class='switch'>
16181560

16191561
: If [=playback rate=] &gt; 0 and
16201562
<var>unconstrained current time</var> is greater than or equal to
16211563
<a>associated effect end</a>,
16221564
:: If <var>did seek</var> is true, let the <a>hold time</a>
1623-
be the value of <var>unconstrained current time</var> and let
1624-
<a>hold phase</a> be [=timeline active phase|active=].
1565+
be the value of <var>unconstrained current time</var>.
16251566

16261567
If <var>did seek</var> is false, let the <a>hold time</a> be the maximum
1627-
value of <a>previous current time</a> and <a>associated effect end</a>
1628-
and let <a>hold phase</a> be the <a>current phase</a>.
1568+
value of <a>previous current time</a> and <a>associated effect end</a>.
16291569
If the <a>previous current time</a> is
16301570
<a>unresolved</a>, let the <a>hold time</a> be <a>associated
16311571
effect end</a>.
16321572
: If [=playback rate=] &lt; 0 and
16331573
<var>unconstrained current time</var> is less than or equal to 0,
16341574
:: If <var>did seek</var> is true, let the <a>hold time</a>
1635-
be the value of <var>unconstrained current time</var> and let
1636-
<a>hold phase</a> be [=timeline active phase|active=].
1575+
be the value of <var>unconstrained current time</var>.
16371576

16381577
If <var>did seek</var> is false, let the <a>hold time</a> be the
1639-
minimum value of <a>previous current time</a> and zero and let
1640-
<a>hold phase</a> be the <a>current phase</a>.
1578+
minimum value of <a>previous current time</a> and zero.
16411579
If the <a>previous current time</a> is
16421580
<a>unresolved</a>, let the <a>hold time</a> be zero.
16431581
: If [=playback rate=] &ne; 0, and
@@ -1653,7 +1591,6 @@ follows:
16531591
of <a>timeline</a> associated with <var>animation</var>.
16541592

16551593
1. Let the <a>hold time</a> be <a>unresolved</a>.
1656-
1. Let the <a>hold phase</a> be unset.
16571594

16581595
</div>
16591596

@@ -1801,8 +1738,6 @@ for <var>animation</var> defined below:
18011738
unresolved except in the case when the animation was previously <a
18021739
lt="idle play state">idle</a>.</div>
18031740

1804-
1. Let the <a>hold phase</a> be unset.
1805-
18061741
1. Cancel the <a>pending pause task</a>.
18071742

18081743
1. <a lt="resolve a Promise">Resolve</a> the <a>current ready promise</a>
@@ -1868,7 +1803,6 @@ as follows:
18681803
source=].
18691804

18701805
1. Make <var>animation</var>'s <a>hold time</a> <a>unresolved</a>.
1871-
1. Make <var>animation</var>'s <a>hold phase</a> unset.
18721806
1. Make <var>animation</var>'s [=start time=] <a>unresolved</a>.
18731807

18741808
### Speed control ### {#speed-control}
@@ -2411,27 +2345,19 @@ definitions:
24112345

24122346
An <a>animation effect</a> is in the <dfn>before phase</dfn> if the
24132347
animation effect's <a>local time</a> is not <a>unresolved</a> and
2414-
<em>any</em> of the following conditions are met:
2348+
<em>either</em> of the following conditions are met:
24152349

24162350
1. the <a>local time</a> is less than the <a>before-active boundary time</a>,
24172351
<em>or</em>
2418-
1. the effect is <a>associated with an animation</a> <em>and</em> the
2419-
associated <a>animation</a>'s <a>current phase</a> is
2420-
[=timeline before phase|before=] <em>and</em> the <a>local time</a> is equal
2421-
to the <a>before-active boundary time</a>, <em>or</em>
24222352
1. the <a>animation direction</a> is &lsquo;backwards&rsquo; and the <a>local
24232353
time</a> is equal to the <a>before-active boundary time</a>.
24242354

24252355
An <a>animation effect</a> is in the <dfn>after phase</dfn> if the
24262356
animation effect's <a>local time</a> is not <a>unresolved</a> and
2427-
<em>any</em> of the following conditions are met:
2357+
<em>either</em> of the following conditions are met:
24282358

24292359
1. the <a>local time</a> is greater than the <a>active-after boundary
24302360
time</a>, <em>or</em>
2431-
1. the effect is <a>associated with an animation</a> <em>and</em> the
2432-
associated <a>animation</a>'s <a>current phase</a> is
2433-
[=timeline after phase|after=] <em>and</em> the <a>local time</a> is equal
2434-
to the <a>active-after boundary time</a>, <em>or</em>
24352361
1. the <a>animation direction</a> is &lsquo;forwards&rsquo; and the <a>local
24362362
time</a> is equal to the <a>active-after boundary time</a>.
24372363

0 commit comments

Comments
 (0)