@@ -49,6 +49,17 @@ The behavior of the CSS markup is described in terms of the programming interfac
4949User-agents that do not support script may still implement the CSS markup
5050provided 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 -
642653when scrolling happens in response to input events, the rendered scroll offset
643654and 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
647673An earlier draft of this proposal also provided for animations whose progress
0 commit comments