JS API

pause(), resume()

Pause and resume the animations of the doodle: CSS animations, @t-driven values and shader canvases.

Syntax

  • doodle.pause()
  • doodle.resume()

While paused the element carries a cssd-paused attribute, which sets animation-play-state: paused on everything inside, including nested doodles and inline SVG animations. auto:update timers are not affected; use cancelAutoUpdate() for those.

Examples

Toggle the rotation with a button:

const doodle = document.querySelector('css-doodle');
const button = document.querySelector('#toggle');

button.addEventListener('click', () => {
  const paused = doodle.hasAttribute('cssd-paused');
  paused ? doodle.resume() : doodle.pause();
  button.textContent = paused ? 'Pause' : 'Resume';
});

Pause animations that are off screen:

const observer = new IntersectionObserver(entries => {
  for (const { target, isIntersecting } of entries) {
    isIntersecting ? target.resume() : target.pause();
  }
});

document.querySelectorAll('css-doodle').forEach(el => observer.observe(el));

See also