01 · INTRO

页面根本没在滚

浏览器原生滚动被架空:wheel / 触摸 / 键盘全部喂给一个 scrollManager, 它维护 target 与 current 两个标量,每帧 lerp 逼近 —— 于是 DOM 位移、 背景 canvas、进度条吃的是同一个数。

02 · NORMALIZE

wheel 先归一化再消费

鼠标滚轮按行报、触控板按像素报、老浏览器按页报 —— deltaMode 三种取值先统一换算成像素,手感才能跨设备一致。

03 · KEYBOARD

键盘是一等公民

↑↓ 一步 100px,PageUp / PageDown 走整屏,Home / End 直达两端 —— oryzo 的 scrollManager 把这些全接管了,无障碍不靠原生滚动也能保住。

04 · DRIVE

一个进度驱动一切

滚动进度 0→1 同时驱动:DOM 层 translateY、背景那枚"杯垫"的旋转与配色、 右侧进度条 —— 内容层和 WebGL 层不会各滚各的。

SCROLL TO CONTINUE
VIRTUAL SCROLL
scroll 0px · 进度 0%