跳到主要内容
界面图谱Interface Atlas
☰
EN
基础Motion / Foundation

动效时长与缓动

Motion Duration & Easing

别名:动效时长动画时长缓动曲线动画快慢动效快慢弹跳顺不顺easingduration and easing

这是什么

动效时长是动画从开始到结束的时间,按交互类型分档:微反馈 100–150ms、标准过渡 200–300ms、强调入场 300–500ms。缓动决定加速减速的节奏,入场用 ease-out、退场用 ease-in。始终尊重 prefers-reduced-motion,把位移降级为淡入。

交互实验室

试一试,再决定怎么用

正在加载实验室…

✓ 适用场景

  • 按钮、开关、卡片等元素的悬停、按下、状态切换
  • 弹层、抽屉、面板的入场与退场
  • 需要统一全站动效节奏、避免每个组件各写一个时长

✕ 不适用场景

  • 用户开启 prefers-reduced-motion(应降级为短淡入或无动画)
  • 关键操作等待反馈,动画拖慢到让人觉得卡顿
  • 超过 500ms 的装饰性动画反复播放、抢占注意力

常见形式

微反馈

Micro feedback

100–150ms,点按、悬停要立刻可感知

标准过渡

Standard

200–300ms,展开、切换、淡入淡出

强调入场

Emphasised

300–500ms,页面与全屏浮层入场

实现要点

transition-duration: 200mstransition-timing-function: cubic-bezier(0.2, 0, 0, 1)animation-duration: 300ms@media (prefers-reduced-motion: reduce)transition-property: transform, opacity

时长按交互类型分档并用变量统一(--motion-fast: 120ms; --motion-base: 240ms; --motion-slow: 400ms)。入场用 ease-out 或 cubic-bezier(0.2, 0, 0, 1),退场用 ease-in,并让退场比入场略快。只动 transform 与 opacity,避免触发 layout。媒体查询 prefers-reduced-motion: reduce 下把位移改成 opacity 淡入并压到 150ms 内,或直接 transition: none。

平台 API

transition-durationtransition-timing-functionanimation-durationcubic-bezier()prefers-reduced-motion

代码里叫什么

同一控件在不同体系里的叫号——用对名字,Prompt 和检索才准。

体系名称
Material DesignDuration & easing tokens

分档时长与标准缓动令牌

Apple HIGMotion

用动效表达层级与空间关系

CSStransition-duration

直接控制过渡时长的属性

相关概念

减弱动效Reduced Motion

尊重系统「减弱动态效果」偏好,把大幅位移、缩放、视差动画降级为淡入甚至直接呈现。前庭敏感的用户会被大幅动效诱发眩晕恶心,这不是审美偏好而是健康风险;WCAG 2.3.3 要求非必要动画可被关闭。

无障碍搭配使用
悬浮上浮Hover Lift

鼠标悬停时卡片或按钮轻轻上浮(translateY -2~6px)并加深投影, 像被无形的手托起。最常见的"这个可以点"的桌面端暗示, 成本极低但立刻让页面有层次和呼吸感。

动效搭配使用
页面切换过渡Page Transition

页面之间切换时,旧页面滑出或淡出、新页面滑入或淡入,让路由跳转 从"硬切"变成一段 200~400ms 的连续运动。方向应与信息层级一致: 进入下级页面向左推入,返回时向右退出,帮助用户建立空间心智模型。

动效搭配使用
按压反馈Press Feedback

用户按下按钮、卡片等可点击元素时,元素轻微缩小(通常 0.95~0.98), 松开后弹回。一个几十毫秒的细节,让界面"手感"立刻从网页变成实体按键。

动效搭配使用

参考来源

Markdown 版(给 Agent) · JSON