Scroll-driven animations are a common UX pattern on the web. These are animations that are linked to the scroll position of a scroll container. This means that as you scroll up or down, the linked animation scrubs forward or backward in direct response. Think of interesting effects such as parallax background images or reading indicators which move as you scroll. A similar type of scroll-driven animation is an animation that is linked to an element's position within its scroll container. With it, for example, elements can fade-in as they come into view.
The classic way to achieve these kinds of effects is to respond to scroll events on the main thread. This makes creating performant scroll-driven animations that are in-sync with scrolling impossible or very difficult. Thanks to the Scroll-driven Animations specification, you now have access to new APIs and concepts that enable declarative scroll-driven animations that work in conjunction with the existing Web Animations API (WAAPI) and CSS Animations API.
By having scroll-driven animations integrate with these two existing APIs, scroll-driven animations can benefit from all advantages these APIs bring. That includes the ability to have these animations run off the main thread. Yes, read that correctly: you can now have silky smooth animations, driven by scroll, running off the main thread … and all that with just a few lines of extra code – What's not to like?!
# Demos⚠️ Your browser does not support Scroll-Linked Animations. To cater for this, a polyfill has been loaded.
Use the ℹ️ icon on each demo page to know more about how that specific demo was created. Several demos come in multiple versions. To switch versions, hit the 🔀 icon.
Reading Progress IndicatorShow a progress bar at the top of the page that indicates how far down you have scrolled.
CSS version JS version Carousel Step IndicatorCarousel with a stepped progress bar to indicate which item you are viewing.
CSS version JS version Carousel with markersCarousel with markers to indicate which item you are viewing.
CSS version JS version Cover FlowRecreation of a famous effect where you can flick through a list of album covers
CSS version JS version Window CarouselThe images in this carousel slide across the screen as they enter/exit the scrollport
CSS version JS version Horizontal Scroll SectionA horizontal strips scrolls by as you scroll vertically.
CSS version JS version Shrinking Header + ShadowAdd a shadow to the page’s header after scrolling down a bit.
CSS version JS version # Tools # Watch a free video courseTo learn all there is to know about Scroll-Driven Animations, check out this 10-part video course that covers everything from start to finish. Embedded below is the first episode:
This hands-on course is split up in two parts: one part covering the core concepts, followed by a second part that dissects some of the demos featured on this site.
Here’s the full list of episodes:
If you are more into reading, go check out the written documentation.
# Scroll-Driven Animations Debugger DevTools ExtensionTo visualize and debug Scroll-Driven Animations there is the Scroll-Driven Animations Debugger extension for Chrome DevTools. The video below demonstrates the extension in action on this very site.
Get the extension from the Chrome Web Store. File a bug in the repository.
# Links and Resourcesscroll-animations-1
)RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4