Pixel Pete saysClassic DHTML animation changed style values on a setInterval loop — CSS/rAF replaced it.
Before CSS transitions, DHTML animated by nudging style.left or style.opacity every few milliseconds with setInterval. It worked but was janky and CPU-heavy. Today, CSS transitions/animations handle most motion declaratively, and requestAnimationFrame drives JS animation smoothly. Knowing the old way explains why the new tools exist.