创新方案
当需要为不同时长的动画制定统一时间与缓动决策时…
适用于任何时长的 UI/交互动画,帮助确定时长、缓动、预备、跟随、错峰和注意力分配。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
当需要为不同时长的动画制定统一时间与缓动通用
解决思路
- 应用 Squash & Stretch:按比例缩放,100ms 用 5%,2000ms 用 30%;不要消除,要始终成比例。
- 应用 Anticipation:让预备动作占主动作时长的 20-30%,总时长变化时保持该比例不变。
- 应用 Staging:只设置一个清晰焦点;无论瞬间还是电影感,只让一个事物要求主要注意力。
- 应用 Straight Ahead/Pose to Pose:复杂度匹配时长,短动画用 straight ahead,长动画用 pose to pose。
- 应用 Follow Through:所有时长都加入跟随动作;100ms 也可有微 overshoot,幅度匹配时长。
- 应用 Slow In/Slow Out:始终使用缓动;不要用线性运动,因为线性在任何时长都显得机械。
- 应用 Arcs:让运动路径走弧线;短动画用细微曲线,长动画用大弧线。
- 应用 Secondary Action:次要动作只支持主动作,绝不竞争;在 50ms 和 5000ms 都检查这一点。
- 应用 Timing:用时长决定感知;同一运动在不同速度下读感不同,需按速度调整。
- 应用 Exaggeration:夸张程度匹配时长和重要性;时长更长时允许更多夸张。
- 应用 Solid Drawing:变换必须匹配;不管速度快慢,都保持一致性。
- 应用 Appeal:检查动画在任何时长下都增强而非妨碍体验;若不满足,则调整或移除。
- 使用 Golden Ratio of Animation Timing:按 Anticipation : Action : Follow-through = 20% : 50% : 30% 分配;例如 500ms 时为 100ms / 250ms / 150ms。
- 使用 Stagger Ratio:将 stagger delay 设为 item duration 的 10-20%;例如 item duration 为 300ms 时,项目间 30-60ms。
- 按 Easing Intensity vs Duration 选择缓动:Duration < 150ms 只用 ease-out(没有时间做 ease-in);Duration 150-400ms 用 ease-out 或自定义;Duration 400ms+ 可用 full ease-in-out。
- 使用通用 ease-out:transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);它适用于任何时长。
- 使用通用自然运动:transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)。
- 使用通用回弹:transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);并让幅度随 duration 缩放。
- 遵循 Shorter distances = shorter durations:让运动时长与空间距离成比例,距离越短时长越短。
- 遵循 Bigger elements move slower:更大的元素移动更慢,因为感知重量需要更多时间。
- 遵循 Enter fast, exit faster:进入快,退出更快;优先服务用户关心的到达,而非离开。
- 遵循 Context determines tolerance:首次访问可比重复使用允许更长动画。
- 遵循 Attention is finite:谨慎争夺注意力,不管动画时长。
- 遵循 Physics provides intuition:匹配真实世界预期,不管速度快慢。
- 遵循 Easing is mandatory:必须使用缓动;线性运动在每个时长都显得不对。
- 遵循 Test at extremes:在 2x 和 0.5x 下测试;若仍成立,则动画足够稳健。
- 选择 Instant (< 100ms) 时长,让用户感受到确认和响应。
- 选择 Quick (100-300ms) 时长,传达效率和精致感。
- 选择 Standard (300-500ms) 时长,传达清晰和沟通。
- 选择 Deliberate (500-1000ms) 时长,传达重要性和注意力。
- 选择 Dramatic (> 1000ms) 时长,用于故事、情绪和记忆。
- 把 duration 当作设计决策:用它传达重要性、引导注意力、塑造情绪;先掌握原则,再让上下文决定 duration。
适用边界 · 注意事项
- 不适用于完全不涉及动画、过渡或运动感知的静态界面。
- 不适用于必须严格遵循平台或品牌动效规范且禁止自定义 duration 或 cubic-bezier 的场景。
- 不适用于用户开启 prefers-reduced-motion 且应禁用动画,或环境无法承受任何动画开销的场景。