惯性滚动的摩擦与终止预期
别名: 惯性滚动 · scrolling physics · deceleration
概念解释
惯性滚动摩擦(inertial scrolling friction)是手指或触控板放开后内容继续运动并逐步减速的响应函数。用户会从初始滑动速度、过去经验和当前内容密度预测滚动在哪里停下;摩擦与减速度决定这一终止预期是否成立。
机制
系统将输入末速度转为内容速度,再按摩擦曲线持续衰减直至静止。低摩擦使一次甩动覆盖更远距离但更难停准,高摩擦便于定位但增加重复操作。若帧率、加载或边界回弹改变速度,用户的内部预测与实际终点分离,就会出现反向回滚和修正。
这个预测能力的来源值得往下追一层:用户不是在做精确的物理计算,而是把"这一下甩多快、通常能滚多远"编码成了一种运动记忆,靠的是同一设备上反复使用积累的统计规律,而不是当次的实时计算。这解释了两个现象:一是跨应用切换摩擦系数(比如列表用一种曲线,画布用另一种)会让这种记忆失效,用户在新曲线上会系统性地滚过头或滚不到;二是操作系统级统一摩擦曲线之所以重要,是因为它让"甩一下大概能到哪"这条经验可以跨应用复用,应用私自替换摩擦曲线是在偷偷改写用户已经建立的预测模型。
怎么研究
操控初速度、减速度、内容长度和目标位置,记录终点误差、反向滚动、再次触碰时间、晕动不适和完成时间。应测试短列表、长文、嵌套容器和边界处,而非只在无限画布上测平均距离。要验证"运动记忆是否被打破",应设计跨会话的重复测量——同一被试先在系统默认曲线上练习到稳定,再切换到自定义曲线,观测终点误差是否出现短期回升。
边界
物理拟真不必等于可用:阅读逐行内容、低视觉稳定性用户或精密停靠任务可能偏好更短惯性或无惯性。不同平台的既有滚动手感也是预期来源,应用内自定义曲线不应无理由偏离系统——除非该应用的核心任务(如专业画布软件的连续平移)确实需要不同于阅读列表的手感,且经过明确说明。
怎么落地
- 使用连续、稳定的减速与边界行为,使相似甩动产生可预测终点;没有特殊理由不要自定义偏离系统默认摩擦曲线。
- 提供立即触碰或滚轮输入以中断惯性,避免用户被动等待。
- 验证办法:测量目标附近的终点误差和反向修正,按内容任务而非视觉炫技调整摩擦;对比同一批用户在系统默认曲线和自定义曲线下的首次使用误差,确认自定义曲线没有系统性地打破既有预测。