Scroll Animation Snippets — Free HTML CSS JS Scroll Effects
211 scroll-triggered effects · Reveal, Parallax, Pinned sections, Sticky stacks, Image-sequence scrub · Exports to React, Vue, Angular & Tailwind
What's included
Features
About this category
Scroll Animation Snippets — Free Scroll-Triggered Reveals, Parallax, and Pinned Storytelling
Scroll is the primary way people move through a web page, which makes it the richest surface for motion. A well-timed reveal, a layer that drifts at its own pace, a section that pins while its content advances — these are the effects that make modern marketing sites, product tours, and editorial stories feel alive. This collection gathers every common scroll-driven pattern as plain HTML, CSS, and vanilla JavaScript (with a few using GSAP ScrollTrigger where it earns its place), so you can drop a real, performant scroll effect into any page without wiring up a heavy animation framework yourself.
Every snippet is copy-paste ready and exports to React, Vue, Angular, and Tailwind from the same source, so the same effect works whether you are prototyping in a static HTML file or wiring it into a component tree.
Reveal on scroll — the workhorse
The most common pattern is content that fades and lifts into place as it enters the viewport. These snippets use an IntersectionObserver rather than a scroll listener: the browser tells you when an element crosses a threshold, so there is no per-frame work and no layout thrashing. The observer typically fires once and then unobserves the element, so the reveal never re-runs on scroll-back. Staggered grids extend this by delaying each child, producing the cascading entrance you see on feature sections.
Scroll-linked animation — tie motion to position
Some effects map an element's progress directly to the scroll position: a progress bar that fills as you read, a hero that zooms or blurs as it exits, text whose letters stagger in as the section scrolls through. These read the scroll offset (or use the modern scroll-timeline where supported) and interpolate a value, so the animation scrubs backward and forward exactly with the wheel or finger rather than playing on a fixed timer.
Pinning and sticky storytelling
The most cinematic patterns pin a section in place while its inner content advances — horizontal card galleries that scroll sideways, stacking cards that pile up, panels that split apart, an image sequence that scrubs frame by frame like a flipbook. The pin-based snippets lean on GSAP ScrollTrigger for robust cross-browser pinning; the simpler stacks use CSS position: sticky, which pins with zero JavaScript.
Parallax and depth
Parallax layers move at different speeds to fake depth — a background drifting slower than the foreground, a tilted grid, a hero image that lags the scroll. Done with transforms rather than background-position, they stay smooth because the browser can composite them off the main thread.
Performance and accessibility first
Because scroll effects run constantly, they must be cheap: these snippets favour IntersectionObserver over scroll listeners, animate transform and opacity (the two properties the compositor handles without repaint), and gate motion behind prefers-reduced-motion so users who opt out of animation get a static, fully readable page. Each snippet renders from readable vanilla JS, making the collection a clear reference for how scroll animation actually works under the hood.
Real-world uses
Common Use Cases
Got questions?
Frequently Asked Questions
Most do not. Reveal and enter-view effects use an IntersectionObserver, which lets the browser notify you when an element crosses a viewport threshold instead of running a handler on every scroll frame. That avoids layout thrashing and keeps scrolling smooth. The few scrub-linked effects that need continuous progress read the scroll offset inside a requestAnimationFrame loop or use a scroll-timeline, and the pin-based ones delegate to GSAP ScrollTrigger.
The simple reveals, staggers, parallax layers, sticky stacks, and progress indicators are plain HTML, CSS, and vanilla JavaScript with no dependency — position: sticky and IntersectionObserver do the work. The advanced pinning effects (horizontal pin, pin-story, image-sequence scrub, some perspective galleries) use GSAP ScrollTrigger because robust cross-browser pinning is genuinely hard to do by hand. Each snippet states its dependency, and the exported versions defer any ScrollTrigger setup to the framework mount hook.
Not if you keep to the patterns here. The snippets animate transform and opacity — the two properties the browser compositor can handle without repainting or reflowing — and prefer IntersectionObserver over scroll listeners, so there is little main-thread work. Reveal-once effects unobserve their element after firing so nothing accumulates. Avoid animating layout properties like top, height, or margin on scroll, which is what causes jank.
Wrap the motion in a @media (prefers-reduced-motion: no-preference) query, or check window.matchMedia("(prefers-reduced-motion: reduce)") in JS and skip the animation, leaving the content in its final visible state. Because the reveal snippets set the end state as the default and only animate toward it, honouring the preference is usually as simple as not adding the animating class — the page stays fully readable and static.
Export any snippet to your framework from the editor. The exporter places IntersectionObserver setup and any GSAP ScrollTrigger initialisation inside the mount hook — useEffect in React, onMounted in Vue, ngAfterViewInit in Angular — and returns a cleanup that disconnects the observer or kills the ScrollTrigger on unmount, so effects do not leak across route changes. Refs replace getElementById, and the CSS ports directly or converts to Tailwind utilities.
All 211 scroll effects snippets, A to Z
- 3D Card Rotate on Scroll (view-timeline)
- AOS Fade-Up Gallery
- Back to Top Button
- Container Scroll Reveal
- Count-Up Stats on Scroll (IntersectionObserver)
- CSS Scroll Timeline Gauge Needle
- CSS Scroll Timeline Image Zoom Parallax
- CSS Scroll Timeline Progress Ring
- CSS Scroll-Driven Animations (animation-timeline) Explainer
- CSS Scroll-Driven Progress Bar
- CSS View Timeline Card Flip In
- CSS View Timeline Stagger List Items
- CSS-Only Parallax Perspective Section
- Direction-Aware Grid Reveal (IntersectionObserver)
- Dot Reveal Card
- Full Page Scroll
- GSAP Scroll Number Counter
- GSAP Scroll Text Scramble
- GSAP ScrollTrigger Pinned Gallery Snap
- Heading Underline Fill (view-timeline)
- Hero Parallax Grid
- Hue-Rotating Scroll Background
- Independence Day Flag Hoist
- Lenis Smooth Scroll Page
- Locomotive Scroll Sections
- Lottie Scroll Bar Chart
- Lottie Scroll Donut Chart
- Lottie Scroll Line Draw
- Lottie Scroll Orbit Rings
- Lottie Scroll Pulse Dots
- Lottie Scroll Scrub
- Multi-Layer Scroll Parallax Banner
- Native CSS Scroll Progress Ring
- Observer Fullpage Sections
- Parallax Hero Section
- Reading Time Left
- Rellax Parallax Layers
- Reveal on Scroll
- Saturation Gallery (view-timeline)
- Scroll 3D Cards
- Scroll 3D Flip Reveal
- Scroll Accordion
- Scroll Before After
- Scroll Blinds Reveal
- Scroll Blur Focus
- Scroll Book Shelf Slide
- Scroll Canvas Generative Flow Field
- Scroll Canvas Particle Text Formation
- Scroll Canvas Starfield Warp Speed
- Scroll Card Deck Shuffle
- Scroll Card Fan
- Scroll Cassette Tape Rewind
- Scroll Chapter Sidebar Story
- Scroll Chat Story
- Scroll Color Sections
- Scroll Comic Panel Sequence
- Scroll Company Timeline
- Scroll Constellation Connect Dots
- Scroll Crossword Fill Reveal
- Scroll Curtain Reveal
- Scroll Data Story Counters
- Scroll Day/Night Sky Cycle
- Scroll Direction Theme Shift
- Scroll Fabric Unroll Bolt
- Scroll Fade Stack
- Scroll Film Strip Scrub
- Scroll Gallery Pin
- Scroll GLB Camera Flythrough
- Scroll Grid Zoom
- Scroll Hero Exit
- Scroll Holographic Card Tilt Story
- Scroll Horizontal Pin
- Scroll Horizontal Story Track
- Scroll Image Mask
- Scroll Image Sequence
- Scroll Lava Lamp Blobs
- Scroll Letter Stagger
- Scroll Liquid Blob Morph
- Scroll Magazine Layout Shift
- Scroll Map Journey Story
- Scroll Milestone Confetti
- Scroll Neon Sign Flicker On
- Scroll Paper Fold Brochure
- Scroll Parallax Layers
- Scroll Path Follow
- Scroll Perspective Cards
- Scroll Phone Screens
- Scroll Pin Steps
- Scroll Pinball Flipper Launch
- Scroll Polaroid Stack Flip
- Scroll Position Memory Across Tab Switches
- Scroll Product Launch Story
- Scroll Progress Bar
- Scroll Progress Circle
- Scroll Progress Journey Trail
- Scroll Radar Sweep Reveal
- Scroll Reveal Grid
- Scroll Rotate Gallery
- Scroll Satellite Ground Track Map
- Scroll Seismograph Needle Draw
- Scroll Shape Morph
- Scroll Skew Velocity
- Scroll Snap Gallery
- Scroll Split Panels
- Scroll Stat Reveal Story
- Scroll Sticky Stack
- Scroll Stock Candlestick Crash
- Scroll SVG Path Draw
- Scroll Terrain Contour Lines
- Scroll Testimonial Sequence
- Scroll Text Clip Reveal
- Scroll Text Draw
- Scroll Thermometer Fill
- Scroll Thread Stitch Reveal
- Scroll Tile Assemble
- Scroll Timeline Beam
- Scroll Timeline Dots
- Scroll Timeline Nav Progress Indicator
- Scroll to Top
- Scroll Transformation Story
- Scroll Typewriter
- Scroll Velocity Marquee
- Scroll Velocity Motion Blur
- Scroll Vinyl Record Spin
- Scroll Weather Scene Transition
- Scroll Word Wheel
- Scroll X-Ray Scan Reveal
- Scroll Year Timeline
- Scroll Zoom Hero
- Scroll-Driven Line Chart Draw
- Scroll-Linked Audio Waveform Scrub
- Scroll-Pinned Mountain Story
- Scroll-Scrubbed GLB Motion Trail
- Scroll-Scrubbed GLB Turntable
- Scroll-Scrubbed GLB Walk Cycle
- Scroll-Synced Margin Annotations
- Scroll-Synced Odometer
- Scroll-Triggered GLB Model Carousel
- Scroll-Triggered Overshoot Counter
- Scrollama Scrollytelling
- ScrollOut Scroll Progress Bar
- ScrollOut Timeline Cascade
- ScrollReveal Fade Timeline
- ScrollReveal Staggered Feature Grid
- ScrollSmoother Parallax Page
- Scrollytelling Chart
- Stacking Scroll Cards
- Staggered Reveal on Scroll — IntersectionObserver, One Timer
- Sticky Scroll Features
- Sticky Section Counter (scroll-timeline)
- SVG Path Draw (view-timeline, No GSAP)
- Text Reveal on Scroll
- Three.js Scroll 3D Book Page Flip
- Three.js Scroll Asteroid Belt Run
- Three.js Scroll Black Hole Approach
- Three.js Scroll Bridge Build Crossing
- Three.js Scroll Camera Path
- Three.js Scroll Circuit Board Trace
- Three.js Scroll City Flyover
- Three.js Scroll Color Morph
- Three.js Scroll Constellation Web
- Three.js Scroll Coral Reef Grow
- Three.js Scroll Crystal Bloom
- Three.js Scroll Crystal Cave Descent
- Three.js Scroll Depth Parallax
- Three.js Scroll DNA Helix Unwind
- Three.js Scroll Domino Run
- Three.js Scroll Exploded Product View
- Three.js Scroll Fabric Ripple
- Three.js Scroll Fold Cards
- Three.js Scroll Four Seasons Tree
- Three.js Scroll Galaxy Formation
- Three.js Scroll Gear Train Mechanism
- Three.js Scroll Hologram Scan Reveal
- Three.js Scroll Horizontal Gallery
- Three.js Scroll Hourglass Sand Timer
- Three.js Scroll Ink Drop Diffusion
- Three.js Scroll Jellyfish Drift
- Three.js Scroll Kaleidoscope Mandala
- Three.js Scroll Lightning Energy Orb
- Three.js Scroll Liquid Metal Blob
- Three.js Scroll Magnetic Field Lines
- Three.js Scroll Möbius Strip Ride
- Three.js Scroll Moon Phases Cycle
- Three.js Scroll Neural Network Pulse
- Three.js Scroll Ocean Dive
- Three.js Scroll Orbit Showcase
- Three.js Scroll Origami Crane Unfold
- Three.js Scroll Paper Plane Flight
- Three.js Scroll Particle Assembly
- Three.js Scroll Pendulum Wave
- Three.js Scroll Planet Approach
- Three.js Scroll Portal Gate Sequence
- Three.js Scroll Prism Light Split
- Three.js Scroll Product Stages
- Three.js Scroll Rocket Launch Sequence
- Three.js Scroll Rubik’s Cube Assembly
- Three.js Scroll Sand Dune Drift
- Three.js Scroll Shader Fluid Gradient Wave
- Three.js Scroll Shader Ripple Distortion
- Three.js Scroll Shatter & Assemble
- Three.js Scroll Solar Eclipse Transit
- Three.js Scroll Spiral Staircase Climb
- Three.js Scroll Text Particles
- Three.js Scroll Tornado Vortex
- Three.js Scroll Tunnel Travel
- Three.js Scroll Typography Shatter
- Three.js Scroll Voxel Tower Build
- Three.js Scroll Wave Terrain
- Three.js Scroll Wireframe Globe Spin
- View Timeline Image Reveal