Skip to content

[web-animations-2][scroll-animations-1] Playing an animation with an unresolved scroll-timeline #13817

Description

@kevers-google

In web-animations-2, enabling a seek time depends on having the auto-rewind flag set and not being associated with a finite timeline.

Suppose we have:

<style>
.scope {
  timeline-scope: --foo;
}
.animation {
  animation-name: my-anim;
  animation-timeline: --foo;
}
</style>
<div class=scope>
  <div class=animating></div>
</div>

As the timeline is not resolved, we cannot say it's a finite timeline, and thus calling play pauses the animation at the start or end. The animation's ready promise cannot be fulfilled while the timeline remains unresolved, and once resolved there is no reason to believe the animation's current time will align.

Propose the we tighten the rule for applying auto-rewind (i.e. seek time) to cases where we explicitly have a time-based timeline so that the the animation remains inactive. It will still be in a play-pending state and can start once the timeline is resolved.

Relace:

5. Let enable seek be true if the auto-rewind flag is true and has finite timeline is false. Otherwise, initialize to false.

With:

5. Let enable seek be true if the auto-rewind flag is true, the timeline is resolved, and has finite timeline is false. Otherwise, initialize to false.

Note that this proposed change would also affect null timelines, which presently are held at the start or end depending on playback rate, with an unresolvable ready promise.

@flackr @graouts @andruud @birtles

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions