C2.08.1Slide-out touch cancellation设计
滑出目标区再抬起等于取消
别名: 滑出取消 · 触摸取消 · 抬起提交
概念解释
在触摸按钮或目标上按住后,滑出目标区再抬起等于取消:系统仅当手指在有效区域内抬起时提交。这个规则把误触后的退出动作变成直接、低成本的反悔路径,而不必先执行再寻找撤销。
机制
按下进入候选状态,手指移动到目标外则转为取消状态,抬起依据当前状态决定不提交;重新进入可恢复候选。这里有一个容易在实现时弄错的细节:判定依据必须是抬起那一刻的当前位置,而不是整个按住过程中走过的路径——如果用户滑出去又滑回来,最终在有效区域内抬手,这次操作应该正常提交,因为路径本身不该被记住,系统只需要知道"松手的这一刻,手指在不在有效区里"。如果实现时图省事,用一个"是否曾经离开过"的标志位来判断,只要中途碰到过边界外就永久标记为取消,即使后来滑回来也不再提交,这就把一个本该"随时可逆"的状态机变成了不可逆的错误陷阱,用户滑回目标后满心以为能提交,结果却被早已埋下的标志位悄悄拦下。
边界
对连续拖动、绘图或滑块,移出边界可能不应取消而应继续控制。目标极小、边界模糊或取消区过窄时,用户也会意外取消;高风险操作还应叠加确认与撤销,而非仅依赖滑出。
怎么落地
- 将普通按钮实现为按下候选、滑出取消、抬起提交。
- 用高亮、褪色或"取消"视觉状态明确告知当前结果。
- 验证办法:专门测试"滑出目标区、再滑回目标区内、最后在区域内抬手"这个序列,确认它和"全程没有离开、直接抬手"的结果完全一致,排查实现里是否用了记录历史路径的标志位而非只看抬起瞬间的当前位置。