Skip to content

Commit e71ca23

Browse files
committed
Talk about the relationship to asynchronous scrolling
1 parent 350baf5 commit e71ca23

2 files changed

Lines changed: 103 additions & 54 deletions

File tree

Overview.bs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,17 @@ The behavior of the CSS markup is described in terms of the programming interfac
4949
User-agents that do not support script may still implement the CSS markup
5050
provided it behaves as if the underlying programming interfaces were in place.
5151

52+
## Relationship to asynchronous scrolling ## {#async-scrolling}
53+
54+
Some user agents support scrolling that's asynchronous with respect to layout
55+
or script. This specification is intended to be compatible with such an
56+
architecture.
57+
58+
Specifically, this specification allows expressing scroll-linked effects in a
59+
way that does not require script to run each time the effect is sampled. User
60+
agents that support asynchronous scrolling are allowed (but not required) to
61+
sample such effects asynchronously as well.
62+
5263
# Use cases # {#use-cases}
5364

5465
<em>This section is non-normative</em>
@@ -642,6 +653,21 @@ author is asking for trouble). In normal situations, including - importantly -
642653
when scrolling happens in response to input events, the rendered scroll offset
643654
and the state of scroll-driven animations will be consistent in each frame.
644655

656+
User agents that composite frames asynchronously with respect to layout and/or
657+
script may, at their discretion, sample scroll-driven animations once per
658+
<em>composited</em> frame, rather than (or in addition to) once per full layout
659+
cycle. Again, if sampling such an animation causes a change to a scroll offset,
660+
the animation will not be re-sampled to reflect the new offset until the next
661+
frame.
662+
663+
Nothing in this section is intended to require that scrolling block on layout
664+
or script. If a user agent normally composites frames where scrolling has
665+
occurred but the consequences of scrolling have not been fully propagated in
666+
layout or script (for example, <pre>scroll</pre> event listeners have not yet
667+
run), the user agent may likewise choose not to sample scroll-driven animations
668+
for that composited frame. In such cases, the rendered scroll offset and the
669+
state of a scroll-driven animation may be inconsistent in the composited frame.
670+
645671
# Scroll-triggered (but time-driven) animations # {#scroll-triggered-animations}
646672

647673
An earlier draft of this proposal also provided for animations whose progress

0 commit comments

Comments
 (0)