C3.04.4Edge auto-scroll during drag设计研究
拖拽到屏幕边缘的自动滚动与速度
别名: 边缘滚屏 · drag auto scroll · 拖到边
概念解释
落点常常不在当前视口里。手指又不能把对象拖出屏幕物理边界,于是当浮动对象进入边缘热区时,容器必须替手指滚动。自动滚动的速度决定了远距离投放是可控的巡航,还是一次把目标甩过的失控滑动。它是拖拽的空间延伸,不是普通列表惯性,也不是平移画布。
机制
热区把屏幕边做成“还想往这边走”的连续指令。速度通常随深入热区的距离增加:刚碰到边时慢,好让邻近槽位仍可瞄准;顶到边时快,好穿过长列表。速度若与名单项高度不同步,缺口会在条目之间闪跳,落点无法稳定。滚动方向必须跟着热区走,而不是跟着触点的瞬时速度走,否则人在边缘微调横向位置时会意外加速纵向。手指离开热区应在一两帧内刹住,否则对象会在人已经回头瞄准时继续飞。
怎么研究
把目标槽位放在视口外 N 屏处,变化热区宽度、速度曲线(线性 / 指数 / 分档)和最大速度。因变量包括到达时间、越过目标后再折返的次数、误投进热区滚动带里的槽位。还要记手指是停在热区里“等它滚”还是反复进出热区点动。长列表与分节列表应分开:分节标题被快速滚过时,人会失去结构锚点。
边界
短列表一屏能显示全部槽位时,自动滚动是多余的干扰,边缘热区会把靠近底部的投放变成意外翻页。横向抽屉、分页轮播在边缘另有系统手势,自动滚动可能被返回或切页抢走。键盘弹出压缩视口后,热区会叠在输入附件上,速度标定全部作废。笔和鼠标可以把指针移出窗口借系统拖放,不一定需要边缘滚屏。
怎么落地
- 用距边距离映射速度,靠近时慢到每秒大约一行,深处再加速;离开热区立即停止,不要带着惯性。
- 热区不要覆盖正在作为落点的最后几行:给底部、顶部各留一段“可投放且不滚”的安全带。
- 把目标放在三屏之外,请人拖过去。数越过次数和进出热区的次数。反复点动说明速度太快或刹不住;死等过久说明热区太窄或曲线太懒。