10 GSAP Scroll Animations You Can Copy-Paste into Any Project (2026)
Production-ready GSAP ScrollTrigger animations with full source code. Parallax sections, reveal-on-scroll, sticky cards, horizontal scroll galleries, and more — preview live, then grab the code.
Scroll animations separate amateur websites from Awwwards-level experiences. But building them from scratch takes hours of tweaking timing, easing, and scroll positions. These 10 GSAP ScrollTrigger animations are production-ready — preview them live on Glance, then copy the source code directly into your project.
Every animation below uses GSAP ScrollTrigger, the industry-standard library trusted by Disney, Nike, Google, and the majority of Awwwards Site of the Day winners. They work in both Vanilla JS (Vite) and React/Next.js.
Skip the tutorial, grab the code → All 10 animations below (and 120+ more) are available on Glance, our curated animation library. Preview any animation live, download the full source code, and ship it in minutes. Starts at $3.99.
1. Parallax Hero Section
The parallax hero is the single most impactful scroll animation you can add to any landing page. Background elements move at different speeds than foreground content, creating a sense of depth that immediately signals "premium" to visitors.
With GSAP ScrollTrigger, you pin the hero section and animate layers at different rates using scrub: true to tie the animation directly to scroll progress. The result is buttery-smooth parallax that works across all browsers and devices.
gsap.to(".hero-bg", {
y: -200,
scrollTrigger: {
trigger: ".hero",
start: "top top",
end: "bottom top",
scrub: 1,
}
});
gsap.to(".hero-content", {
y: -100,
opacity: 0,
scrollTrigger: {
trigger: ".hero",
start: "center center",
end: "bottom top",
scrub: 1,
}
});
Preview the full parallax hero animation on Glance →
2. Reveal-on-Scroll Sections
Content that fades in or slides up as you scroll is the bread and butter of modern web design. GSAP's ScrollTrigger makes this trivial — set a trigger point, define the animation, and the library handles the rest. The key is in the easing: power3.out gives that satisfying deceleration you see on high-end sites.
gsap.utils.toArray(".reveal-section").forEach((section) => {
gsap.from(section, {
y: 80,
opacity: 0,
duration: 1.2,
ease: "power3.out",
scrollTrigger: {
trigger: section,
start: "top 85%",
toggleActions: "play none none reverse",
}
});
});
3. Sticky Cards Stack
Sticky stacking cards are a premium design pattern where cards pin to the top of the viewport and stack as you scroll, revealing the next card underneath. You see this on Apple product pages and high-end agency portfolios. This requires GSAP's pin feature combined with careful z-index management.
The trick is pinning each card at the same position while adjusting paddingTop so they visually stack. GSAP handles the math for you with pinSpacing: false.
4. Horizontal Scroll Gallery
Horizontal scroll converts vertical scrolling into horizontal movement — a showstopper effect for portfolios and image galleries. The implementation uses a pinned container with a wide inner element that translates horizontally based on scroll progress.
const sections = gsap.utils.toArray(".panel");
gsap.to(sections, {
xPercent: -100 * (sections.length - 1),
ease: "none",
scrollTrigger: {
trigger: ".horizontal-container",
pin: true,
scrub: 1,
snap: 1 / (sections.length - 1),
end: () => "+=" + document.querySelector(".horizontal-container").offsetWidth,
}
});
5. Text Reveal Character-by-Character
Character-by-character text reveals are the signature of Awwwards-winning typography. Split each character into a <span>, then stagger the animation as the text scrolls into view. Combined with clip-path or translateY, this creates the "text pouring in" effect you've seen across award-winning sites.
Glance includes multiple text reveal variations — line-by-line, word-by-word, and character-by-character — ready to drop into your project.
6. Scroll-Driven Progress Bar
A scroll progress indicator at the top or bottom of the page is a subtle UX improvement that also demonstrates GSAP's ability to create decorative, scroll-linked UI elements. Pair scrub: true with a scaleX animation on a fixed-position bar.
7. Image Scale and Fade
Images that scale from slightly zoomed-in and fade to full opacity as you scroll past create a cinematic feel. This is the easiest animation to add for maximum visual impact. Use scale: 1.2 as the starting state and animate to scale: 1 with a clip-path reveal.
8. Counter/Number Animation on Scroll
Stats sections with animated counters that tick up as you scroll past are a proven conversion booster. GSAP can animate any numeric property with snap to ensure clean integer display.
gsap.from(".counter", {
textContent: 0,
duration: 2,
ease: "power1.out",
snap: { textContent: 1 },
scrollTrigger: {
trigger: ".stats-section",
start: "top 80%",
}
});
9. Section Pinning with Timeline
Pinning a section and running a full GSAP timeline while the user scrolls through it is the most powerful scroll animation technique. This is how Apple builds their product storytelling pages — one section stays fixed while content within it transforms, fades, and repositions based on scroll progress.
10. Smooth Scroll with Lenis + GSAP
Every Awwwards site in 2026 uses smooth scrolling. Lenis provides the smooth scroll foundation, while GSAP ScrollTrigger handles the animations. Together, they create the ultra-polished scroll experience users expect from high-end websites.
import Lenis from "lenis";
const lenis = new Lenis();
lenis.on("scroll", ScrollTrigger.update);
gsap.ticker.add((time) => {
lenis.raf(time * 1000);
});
gsap.ticker.lagSmoothing(0);
Stop Building From Scratch
Every animation above (and 120+ more) is available on Glance as a complete, ready-to-use component. Preview any animation live in your browser, download the full source code, and drop it into your project. No npm package to install. No dependency lock-in. Just clean, production-ready code.
Starter access starts at $3.99 for 50+ animations. Plus at $9 for 80+ animations. Pro lifetime at $19 for all 130+ animations plus every future addition. Every animation includes the complete HTML, CSS, and JavaScript source code.
Frequently Asked Questions
What is GSAP ScrollTrigger?
GSAP ScrollTrigger is a plugin for the GreenSock Animation Platform that lets you trigger animations based on scroll position. It can pin elements, scrub animations to scroll progress, create parallax effects, and trigger callbacks at specific scroll points. It works with any DOM element and is the industry standard for scroll-based web animations.
Is GSAP free to use in commercial projects?
GSAP's core library and most plugins including ScrollTrigger are free for commercial use under the standard GSAP license. Some premium plugins like MorphSVG, DrawSVG, and SplitText require a paid Club GreenSock membership. All animations on Glance use only the free GSAP plugins.
How do I add GSAP ScrollTrigger to a React or Next.js project?
Install GSAP with 'npm install gsap'. Then import and register the plugin: import gsap from 'gsap'; import { ScrollTrigger } from 'gsap/ScrollTrigger'; gsap.registerPlugin(ScrollTrigger). Use useLayoutEffect (or useGSAP from @gsap/react) to create animations, and return a cleanup function that kills the ScrollTrigger instances.
What is the best scroll animation library in 2026?
GSAP with ScrollTrigger remains the most powerful and widely used scroll animation library in 2026. Alternatives include Framer Motion (React-specific, great for simpler animations), Lenis (smooth scroll), and the native CSS Scroll-Driven Animations API. For production sites that need complex, performant scroll animations, GSAP is the industry standard used by agencies building Awwwards-winning sites.
Can I use GSAP scroll animations with Vanilla JavaScript?
Yes. GSAP is framework-agnostic and works perfectly with plain HTML, CSS, and JavaScript. Include GSAP and ScrollTrigger via CDN or npm, then use gsap.to(), gsap.from(), or gsap.timeline() with scrollTrigger configuration. All Vanilla JS animations on Glance are built with Vite for fast bundling.
How do I make scroll animations performant?
Use transform and opacity for animations (they don't trigger layout recalculation). Avoid animating width, height, top, or left. Use will-change: transform sparingly. GSAP automatically optimizes rendering, but you should also use ScrollTrigger's 'fastScrollEnd' and 'preventOverlaps' options, and clean up instances when components unmount.
Stop building animations from scratch
130+ production-ready animations for React, Next.js, and Vanilla JS. Preview live, grab the code, ship it. Starts at $3.99.
Browse the Animation Library →More from the blog
How to Add Page Transitions in Next.js App Router (2026 Guide)
Step-by-step guide to implementing smooth page transitions in Next.js 14/15 App Router using Framer Motion, GSAP, and CSS. Includes copy-paste examples for fade, slide, and cinematic transitions.
Framer MotionAwwwards-Level Hover Effects with Framer Motion in React (2026)
Build magnetic cursors, reveal-on-hover cards, staggered menu animations, and tilt effects using Framer Motion. Each example includes live preview and full copy-paste source code.
