GSAP Observer Plugin (Scroll, Touch & Wheel Control)
-
Observer plugin lets you listen to scroll, wheel, touch, and pointer interactions in a clean and consistent way.
Introduction
Observer is a GSAP plugin that lets you listen to user interactions such as:
-
Mouse wheel
-
Scroll direction
-
Touch swipes
-
Pointer movements
Instead of manually handling many browser events, Observer gives you one clean API.
Observer is an official plugin from GreenSock GSAP.
-
What Problem Does Observer Solve?
Without Observer:
-
Multiple event listeners (
wheel,touch,pointer) -
Different behavior across devices
-
Complex logic for direction & speed
With Observer:
-
Unified event handling
-
Built-in direction detection
-
Clean callbacks for gestures
👉 Think of Observer as “Scroll & gesture controller”.
-
Installation / Setup
<script src="https://unpkg.com/gsap@3/dist/gsap.min.js"></script>
<script src="https://unpkg.com/gsap@3/dist/Observer.min.js"></script>
gsap.registerPlugin(Observer);
Observer.create({
target: window,
type: "wheel,touch",
onUp: () => console.log("Scroll Up"),
onDown: () => console.log("Scroll Down")
});
Parameters / Options
Option Meaning Example targetElement to observe windowtypeEvent types "wheel,touch,pointer"onUpScroll/swipe up () => {}onDownScroll/swipe down () => {}onLeftSwipe left () => {}onRightSwipe right () => {}toleranceGesture sensitivity 10preventDefaultStop native scroll true
Detect Scroll Direction
Observer.create({
target: window,
type: "wheel",
onUp() {
console.log("Scrolling Up");
},
onDown() {
console.log("Scrolling Down");
}
});
Section-Based Scroll Control
Observer.create({
type: "wheel,touch",
preventDefault: true,
onDown() {
gsap.to(window, { scrollTo: "+=100vh" });
},
onUp() {
gsap.to(window, { scrollTo: "-=100vh" });
}
});
Animate on Gesture
Observer.create({
type: "wheel",
onDown() {
gsap.to(".box", { y: "+=100" });
},
onUp() {
gsap.to(".box", { y: "-=100" });
}
});
Best Practices
-
Use Observer for gesture-driven UI
-
Combine with ScrollToPlugin for full-page scroll
-
Adjust
tolerancefor better UX -
Disable Observer when not needed
-
Comparison
Tool Best Use Observer Scroll & gesture detection ScrollTrigger Scroll position animation addEventListener Low-level handling IntersectionObserver Visibility detection
Quick Summary
-
Observer listens to user gestures
-
Works with scroll, wheel, touch, pointer
-
Simplifies interaction logic
-
Ideal for full-page scroll & sliders
-
Beginner-friendly and powerful
-