Parallax usually starts with one image.
You add a bit of depth, it works, and suddenly you want it everywhere else.
That is where most parallax setups start getting messy. Once the effect spreads across the page, every instance can become another thing the browser has to watch, load, pause, and update.
I made this one for exactly that reason, so parallax stays easy to repeat without bringing all that extra work with it.
Native first, shared fallback
When the browser and layout support it, Better Parallax uses native CSS scroll-driven animations. Other setups use one shared, event-driven JavaScript engine instead of adding a separate scroll loop for every block.
Built for repeated use
Add multiple instances across the same page while keeping runtime work coordinated and inactive components quiet.
Media only loads and plays when needed
Posters render first. Lazy videos mount as they approach the viewport. With Autoplay enabled, videos pause when they leave, resume when they return, and respect reduced-motion preferences.
Autoplay stays under your control
Turn Autoplay off to keep the image poster visible without loading or playing the video.
Flexible, controlled video sources
Upload MP4 or WebM files directly through Framer, or use direct HTTPS MP4/WebM URLs hosted on Framer, Cloudinary, Mux, or Supabase. YouTube, Vimeo, HLS playlists, webpage links, and other external hosts are not supported.
Questions about setup, product, or licensing: alexandre@mash.supply
Parallax usually starts with one image.
You add a bit of depth, it works, and suddenly you want it everywhere else.
That is where most parallax setups start getting messy. Once the effect spreads across the page, every instance can become another thing the browser has to watch, load, pause, and update.
I made this one for exactly that reason, so parallax stays easy to repeat without bringing all that extra work with it.
Native first, shared fallback
When the browser and layout support it, Better Parallax uses native CSS scroll-driven animations. Other setups use one shared, event-driven JavaScript engine instead of adding a separate scroll loop for every block.
Built for repeated use
Add multiple instances across the same page while keeping runtime work coordinated and inactive components quiet.
Media only loads and plays when needed
Posters render first. Lazy videos mount as they approach the viewport. With Autoplay enabled, videos pause when they leave, resume when they return, and respect reduced-motion preferences.
Autoplay stays under your control
Turn Autoplay off to keep the image poster visible without loading or playing the video.
Flexible, controlled video sources
Upload MP4 or WebM files directly through Framer, or use direct HTTPS MP4/WebM URLs hosted on Framer, Cloudinary, Mux, or Supabase. YouTube, Vimeo, HLS playlists, webpage links, and other external hosts are not supported.
Questions about setup, product, or licensing: alexandre@mash.supply