Mads Stoumann, writing for CSS-Tricks, starts off with a simple idea: set a Custom Property to either playing
or paused
to control animation-play-state
.
[data-animation] {
/* … */
animation-play-state: var(--animps, running);
}
/* Use a checkbox to pause animations */
[data-animation-pause]:checked ~ [data-animation] {
--animps: paused;
}
But one of the listed use cases is great: a pure CSS slideshow that has a play/pause button:
See the Pen
<details> Play/Pause Animations by Mads Stoumann (@stoumann)
on CodePen.
Nice one!
More use cases in the full post, including the use of an IntersectionObserver
to pause animations for elements that are offscreen.
How to Play and Pause CSS Animations with CSS Custom Properties →