Skip to content

Commit e6ca22a

Browse files
committed
[scroll-animations-1] separate animation-range and animation-delay #7901
1 parent 27a5bfa commit e6ca22a

File tree

1 file changed

+63
-34
lines changed

1 file changed

+63
-34
lines changed

scroll-animations-1/Overview.bs

+63-34
Original file line numberDiff line numberDiff line change
@@ -741,67 +741,96 @@ spec: cssom-view-1; type: dfn;
741741

742742
A set of animation keyframes can be attached
743743
in reference to [=named timeline ranges=]
744-
by adjusting the duration of the animation.
744+
by restricting the animation’s [=active phase=]
745+
to the specified timeline range.
746+
Delays (see 'animation-delay')
747+
are set within this restricted range,
748+
constricting it further.
749+
If a duration ('animation-duration') is given,
750+
it extends from the end of the start delay
751+
until the start of the end delay,
752+
and further restricts the range-restricted end.
753+
754+
<pre class="ascii-art">
755+
range start┐ ╺┉┉┉┉active phase┉┉┉┉╸ ┌range end
756+
┄┄┄┄┄┄┄┄┄┄┄├─────────────╊━━━━━━━━━━━━━━━━━━━━╉───────────┤┄┄┄┄┄┄┄┄
757+
╶┄start delay┄╴ ╶┄end delay┄╴
758+
╶┄┄┄┄┄ duration┄┄┄┄┄┄╴
759+
</pre>
745760

746761
<pre class="propdef shorthand">
747-
Name: animation-delay, animation-range
748-
Value: [ <<'animation-delay-start'>> <<'animation-delay-end'>>? | <<timeline-range-name>> ]#
762+
Name: animation-range
763+
Value: [ <<'animation-range-start'>> <<'animation-range-end'>>? | <<timeline-range-name>> ]#
749764
</pre>
750765

751-
The 'animation-delay' and 'animation-range' properties
752-
are both [=shorthand property|shorthands=]
753-
that set 'animation-delay-start' and 'animation-delay-end'
766+
The 'animation-range' property is a [=shorthand property|shorthand=]
767+
that sets 'animation-range-start' and 'animation-range-end'
754768
together in a single declaration.
755-
If the <<'animation-delay-end'>> value is omitted,
756-
it is set to zero.
769+
If the <<'animation-range-end'>> value is omitted,
770+
it is set to ''normal''.
757771
If a <<timeline-range-name>> alone is specified,
758-
'animation-delay-start' is set to that name plus ''0%''
759-
and 'animation-delay-end' is set to that name plus ''100%''.
772+
'animation-range-start' is set to that name plus ''0%''
773+
and 'animation-range-end' is set to that name plus ''100%''.
760774

761775
<pre class="propdef">
762-
Name: animation-delay-start
763-
Value: [ <<time>> | <<timeline-range-name>> <<percentage>> ]#
764-
Initial: 0s
776+
Name: animation-range-start
777+
Value: [ normal | <<timeline-range-name>> <<percentage>> ]#
778+
Initial: normal
765779
Applies to: all elements
766780
Inherited: no
767781
Percentages: relative to the specified [=named timeline range=]
768-
Computed value: list, each item either a duration or a timeline range and progress percentage
782+
Computed value: list, each item either the keyword ''animation-range-start/normal'' or a timeline range and progress percentage
769783
Animatable: no
770784
</pre>
771785

772-
Defines a delay between the start of the animation
773-
and when it begins executing
774-
(i.e. when keyframes attached to 0% progress are mapped).
786+
Shifts the <a spec="web-animations-1">start time</a> of the animation
787+
(i.e. where keyframes mapped to 0% progress are attached
788+
when the iteration count is 1)
789+
to the specified position on the timeline.
775790

776-
<dl dfn-for="animation-delay-start, animation-delay-end" dfn-type=value>
777-
<dt><dfn><<time>></dfn>
791+
<dl dfn-for="animation-range-start" dfn-type=value>
792+
<dt><dfn>normal</dfn>
778793
<dd>
779-
Defines the delay as a duration. See [[CSS-ANIMATIONS-1]].
794+
The start of the [=active phase=]
795+
is determined as normal.
796+
780797
<dt><dfn><<timeline-range-name>> <<percentage>></dfn>
781798
<dd>
782-
Calculates the delay as the difference between
783-
the start of the animation
784-
and the specified point on the [=timeline=].
799+
The [=active phase=] starts
800+
at the specified point on the [=timeline=],
801+
plus any applicable start delay.
785802
</dl>
786803

787804
<pre class="propdef">
788-
Name: animation-delay-end
789-
Value: [ <<time>> | <<timeline-range-name>> <<percentage>> ]#
790-
Initial: 0s
805+
Name: animation-range-end
806+
Value: [ normal | <<timeline-range-name>> <<percentage>> ]#
807+
Initial: normal
791808
Applies to: all elements
792809
Inherited: no
793810
Percentages: relative to the specified [=named timeline range=]
794-
Computed value: list, each item either a duration or a timeline range and progress percentage
811+
Computed value: list, each item either the keyword ''animation-range-end/normal'' or a timeline range and progress percentage
795812
Animatable: no
796813
</pre>
797814

798-
Defines a delay between the end of the animation
799-
and when it ends executing
800-
(i.e. when keyframes attached to 100% progress are mapped).
801-
Values are as for 'animation-delay-start',
802-
but calculating backwards from the end,
803-
i.e. a ''2s'' delay effectively shortens the animation duration,
804-
whereas ''-2s'' lengthens it.
815+
Shifts the <a spec="web-animations-1">end time</a> of the animation
816+
(i.e. where keyframes mapped to 100% progress are attached
817+
when the iteration count is 1)
818+
to the specified position on the timeline.
819+
820+
<dl dfn-for="animation-range-end" dfn-type=value>
821+
<dt><dfn>normal</dfn>
822+
<dd>
823+
The <a spec="web-animations-1">end time</a> of the animation
824+
is determined as normal.
825+
826+
<dt><dfn><<timeline-range-name>> <<percentage>></dfn>
827+
<dd>
828+
The <a spec="web-animations-1">end time</a> of the animation
829+
is at the specified point on the [=timeline=]
830+
minus any applicable end delay,
831+
or at the end of the animation duration,
832+
whichever comes first.
833+
</dl>
805834

806835
## Reporting Timeline Range Progress: the ''getCurrentTime()'' method ## {#named-range-get-time}
807836

0 commit comments

Comments
 (0)