TIL: GSAP ScrollTrigger's scrub value dramatically affects mobile battery
Setting scrub: true ties animation directly to the scroll position with no smoothing — which sounds great until you realize what it does to mobile frame budgets.

While building the GSAP Scroll Experience, I spent a lot of time tuning the scrub option on ScrollTrigger. Here's what I learned the hard way.
scrub: true vs scrub: 1
scrub: true links the animation directly to the scroll position with zero smoothing. Every scroll event fires a GSAP update synchronously. That means on mobile — where scroll events can fire at 60fps or more — you're running animation calculations on every single one.
scrub: 1 (or any number) adds a lag in seconds. The animation "catches up" to the scroll position over that duration. Visually, this reads as a more cinematic, inertia-style feel. Technically, it decouples the animation tick from the raw scroll event rate.
On a mid-range Android device, scrub: true kept the CPU at ~40% utilization during slow scrolling. Switching to scrub: 0.5 dropped that to ~18% under the same conditions. That difference compounds over a two-minute session into a real, measurable battery hit.