I'm traveling at the moment and don't have time to dig into your snapping logic, but let me explain what's likely causing the "jump" you're noticing...   Most modern browsers handle scrolling on a totally separate thread (at least scrolling of the main documentElement), so it's not synchronized with the JS thread. When you get to the spot where it's supposed to do pinning, the browser renders things as if it continued scrolling, and THEN it runs the JS thread ad ScrollTrigger says "no,
    • Like