C1.11.1Discrete and smooth scrolling设计研究

离散步进滚动与像素级平滑滚动

别名: 平滑滚动 · smooth scrolling · scroll step

概念解释

离散步进滚动(discrete scrolling)把一次滚轮刻度或按键输入转换为固定行数或页面单位的跳变;像素级平滑滚动(smooth scrolling)以连续的小位移更新内容位置,常来自触控板、触屏或高分辨率滚轮。两者决定用户看到的是一连串位置跳跃还是连续运动。

机制

离散输入天然给出计数,系统按步长累计;平滑输入给出更密集的位移或速度,系统插值或直接应用细粒度偏移。步进滚动便于精确地按行、段或列表项移动,平滑滚动保留运动连续性和视觉上下文。内容渲染、帧率、滚动容器和输入设备会共同决定最终体验。

两者的差异根源在硬件本身报告的是什么量。机械滚轮以固定角度分度,每转一档触发一个离散事件,操作系统再把"档位数"翻译成像素或行数;触控板和触屏的传感器持续采样接触点位移,天然产出连续数值,系统不需要也不应该把它先量化成档位再展开,那样会丢失手指实际速度携带的信息。这也是为什么同一台设备接不同外设时体验会突变——外接一个老式机械滚轮鼠标到笔记本上,滚动手感立刻从连续变回分档,这不是软件的错,是上游数据源本身的粒度变了。

怎么研究

在阅读、查找、精确对齐和长距离浏览任务中比较步长、平滑程度和设备,测量定位时间、回滚、阅读中断、晕动不适和输入—显示延迟。应分别测试文本、卡片列表和画布,不能以单一网页结果概括全部内容。比较离散和平滑两种模式时,还应控制"总位移量感知一致"这一变量——如果平滑滚动的加速度曲线让相同的滚轮转动量产生了更大位移,测出的差异可能来自距离而非滚动方式本身。

边界

平滑不总是更好:需要逐行审阅、代码编辑或离散项目浏览时,过度惯性与插值会难以停准。低性能设备上的不稳定动画也可能比瞬时步进更干扰——当渲染帧率跟不上插值节奏时,画面会出现撕裂或卡顿感,这时"平滑"反而制造了新的不稳定感知。系统级滚动设置与用户辅助偏好不应被应用强制覆盖,例如操作系统层面的"减弱动态效果"选项应该同时关闭滚动插值动画。

怎么落地

  • 依据内容任务支持合理步进和连续偏移,不把所有设备规范为同一种滚动感;识别输入源的原生粒度(离散刻度 vs. 连续位移),不要对离散输入强行插值出虚假的平滑感。
  • 保持输入到视觉更新的低延迟,避免滚动在松手后才集中追赶。
  • 验证办法:用阅读定位、列表重访和精确停靠任务测试不同设备,记录回滚与无法停准的位置;在低性能设备上专门测试插值动画是否引入撕裂或掉帧。

延伸

  • 同组C1.11.2 惯性滚动的摩擦与终止预期 · C1.11.3 异步加载导致的滚动位置跳动与锚定 · C1.11.4 滚动劫持破坏用户对滚动的控制预期
  • 相邻C1.08 拖放 · I1 状态时间与响应
  • 站内检索smooth scrolling · discrete scrolling · input granularity

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C1.11.1