back to the lab
[ A study in scroll and motion ]

Scroll-scrub: scroll becomes the video's timeline

GSAPScrollTriggerLenis

[ 2026 ]

Scroll-scrub

A video fills the whole screen and stays pinned while a tall section is scrolled through. Scroll position becomes the clip's timeline: scrolling down advances the frames, scrolling up rewinds. No player and no controls — the video's time is the page's position. The clip is abstract, generated in the study's palette (charcoal → amber → cream).

What it explores

  • Scroll drives `video.currentTime` directly, with the section pinned full-screen (ScrollTrigger pin + scrub).
  • Smoothed seek — scroll sets a target time and the loop eases currentTime toward it each frame (lerp), because seeking straight to every frame stutters.
  • Muted video with `playsinline` so currentTime can be set without a user gesture; Lenis keeps the scrubbing buttery.
  • Clip encoded with dense keyframes, since seeking is smoother the more keyframes a video has — swapping the source is just pointing at another file.

States

[ Pin ] the video locks full-screen while the tall section is scrolled through
[ Scrub ] scroll position becomes currentTime, frame by frame
[ Rewind ] scrolling up moves back in time — nothing is linear
[ open experiment → ]