动效 · 2026.09 · 5 min

动效的毫秒刻度

动效的品位藏在毫秒里:100ms 是手感,250ms 是叙事,400ms 是情感。

大多数动效问题不是「加不加」的问题,而是「多快」的问题。一个 80ms 的悬停反馈和一个 500ms 的页面过渡,用的都是同一个 transform,但用户的感受截然不同——前者是手感,后者是等待。

我们给自己定了一把毫秒刻度尺,只有三档。100ms:交互反馈档,悬停、按下、开关切换。它要快到用户几乎意识不到动画的存在,只感受到「它响应了我」。250ms:页面过渡档,卡片展开、区块切换、菜单滑入。这个时长足够交代空间关系,又不会打断浏览节奏。400ms:情感档,首屏揭示、里程碑庆祝、状态扭转。它允许被注意到,但只用于真正值得被记住的时刻。

超过 500ms 的动画,在我们的标准里已经不属于动效,而属于「叙事」——除非真的在讲故事,否则它只是在消耗用户的耐心。滑动 8px 的距离却用了 600ms,用户会无意识地说出「卡」。那不是性能问题,是时间预算超支。

毫秒刻度的另一面是缓动曲线。100ms 用 ease-out 就够了——它只需要「出发」的果断;250ms 需要 ease-out 配合一点 overshoot 来交代「到达」;400ms 才允许用优雅的 cubic-bezier 让动作有重量感。时长决定动效的存在感,曲线决定动效的性格,两者必须一起校准。

最后一条纪律:同一个动作,在所有界面里必须用同一个时长和曲线。用户不会记住 200ms 还是 250ms,但他们会记住「这个界面动起来是一致的」。一致性,就是动效的克制。

←返回日志zerolight / motion-in-milliseconds