- From: Olga Gerchikov via GitHub <sysbot+gh@w3.org>
- Date: Thu, 27 Aug 2020 22:37:33 +0000
- To: public-css-archive@w3.org
> case 1: Transitioning from a document timeline to a scroll timeline
I believe it is the most common case and, I assume, the desired behavior is:
- Animation doesn't animate on document timeline before scroll timeline is attached.
- Once the animation is attached to scroll timeline and running, animation progress is synced with scroll position.
In this case initial CSS is:
```
@Keyframes fade-anim { ... }
.fade { animation: fade-anim, paused; }
element.classList.add("fade ");// play_state = 'paused', hold_time = 0
```
Attaching the animation to scroll timeline:
```
@scroll-timeline timeline { ... }
.scrolling-animation { animation-timeline: timeline; animation-play-state: running; }
OR
.scrolling-animation { animation-play-state: running; animation-timeline: timeline; }
element.classList.add("scrolling-animation");
```
For both declarations of .scrolling-animation class we want to achieve identical behavior.
- Setting scroll timeline first, unpausing animation second:
```
anim.timeline = scroll_timeline; // hold_time remains 0
anim.play(); // set start_time to 0 or end_effect => animation progress is in sync with scroll
```
- Unpausing first, setting scroll timeline second
```
anim.play(); // hold_time = 0, play pending state
anim.timeline = scroll_timeline; // animation is running => set start_time to 0 or end_effect => animation progress is in sync with scroll
```
Note, to achieve the above we need to change how [unpause](https://drafts.csswg.org/web-animations/#playing-an-animation-section) currently works for scroll animations to always keep it in sync with the scroller. Keeping current time on unpause can be controlled by setting current/start time on running animation via Javascript.
To summarize, Option 4, additional to [described her](https://github.com/w3c/csswg-drafts/pull/5423#issuecomment-679178972), is:
- Modify unpause procedure to resume from position synchronized with a scroller.
- Add additional step after [4](https://drafts.csswg.org/web-animations/#setting-the-timeline) to handle transition to scroll timeline as follows:
- If animation is in 'running' state set start time to 0 or end effect.
--
GitHub Notification of comment by ogerchikov
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/pull/5423#issuecomment-682225556 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 27 August 2020 22:37:36 UTC