浏览器原生滚动被架空:wheel / 触摸 / 键盘全部喂给一个 scrollManager, 它维护 target 与 current 两个标量,每帧 lerp 逼近 —— 于是 DOM 位移、 背景 canvas、进度条吃的是同一个数。
鼠标滚轮按行报、触控板按像素报、老浏览器按页报 —— deltaMode 三种取值先统一换算成像素,手感才能跨设备一致。
↑↓ 一步 100px,PageUp / PageDown 走整屏,Home / End 直达两端 —— oryzo 的 scrollManager 把这些全接管了,无障碍不靠原生滚动也能保住。
滚动进度 0→1 同时驱动:DOM 层 translateY、背景那枚"杯垫"的旋转与配色、 右侧进度条 —— 内容层和 WebGL 层不会各滚各的。