MODULE 08 / LESSON 03

动效:解释关系与变化

用时间表达因果,减少无意义的运动。

31 / 60 课组织界面与交互

先理解这个概念

有目的的动效可以说明元素从哪里来、状态怎样变化、注意力应该移向哪里。时长与缓动取决于距离、元素大小和任务频率。动效不能成为获取信息的唯一方式,应尊重减少动态效果偏好。

有用的动效解释对象从哪里来、去了哪里或状态怎样变化。过多运动会竞争注意力,延迟任务并可能引起不适。时长与缓动是实现参数,先应明确要表达的关系:展开、替换、移动和进度不能都套同一种弹跳动画。

用程序员的语言说

动效像调试时的状态可视化,帮助理解转移,但生产环境不能被调试动画拖慢。

记住这三个原则

  1. 01

    每个动画都能回答“帮助用户理解什么”。

  2. 02

    高频操作使用克制的反馈,避免反复等待。

  3. 03

    提供 reduced-motion 下的即时或弱化过渡。

实际设计时,分三步做

  1. STEP 01

    为每个动效写目的,没有关系或反馈价值的运动先删除。尤其避免给持续阅读的背景加入反复移动。

  2. STEP 02

    检查动画是否阻塞输入,快速连续操作是否可中断,是否会因旧动画完成而覆盖新状态。

  3. STEP 03

    为减少动态效果偏好提供替代,保留必要状态变化,用直接更新或轻量过渡表达结果。

一个容易理解的例子

BEFORE / 常见问题

切换每一个设置项都播放一秒弹跳动画。

AFTER / 可以这样改

控件用短暂状态过渡反馈,页面转场保持方向一致。

让运动服务于因果关系,而不增加操作延迟。

IMPLEMENTATION NOTE
@media (prefers-reduced-motion: reduce) {
  .panel { animation: none; transition: none; }
}

展开看:从场景到设计决定

侧栏折叠时,内容区宽度变化可以帮助用户理解空间重新分配;删除一行时,后续行平稳补位可解释列表变化。但如果用户连续删除多行,动画不能逐条排队几秒才完成。应使状态立即准确,视觉过渡跟随最新布局。加载进度也不应靠循环装饰暗示一个实际不存在的完成比例。

适用边界与取舍

更短并不总是更好,过短可能看不清关系,过长则拖慢操作。应在实际任务中调整,而不是把固定毫秒数当作跨平台标准。

YOUR TURN

把这个原则用一次

先做一个小判断

给展开面板定义动效目的与减少动态方案。

再完成一份设计练习

为列表展开详情设计普通与减少动态效果两种表现,说明哪些信息保持相同。

容易踩的坑

不要把某个时长当成所有平台和所有组件的统一标准。

继续查阅

本课为原创教学解释。具体平台规则与标准可查阅官方资料。

WAI-ARIA Authoring PracticesMaterial Design 3