0Pricing
Angular Academy · 课时

过渡与时间控制

使用过渡在不同状态之间制作动画

过渡与时间控制 是 CoddyKit 上的免费 Angular Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Angular Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Angular Academy 课程共包含 4 节课。

状态间动画

状态描述元素停留在哪里;过渡描述元素如何在状态之间移动。transition 函数会将状态变化与动画配对。

过渡函数

transition 接收一个状态变化表达式和一个或多个动画步骤。

transition('closed => open', animate('300ms'))

方向运算符

使用 => 表示单向过渡,使用 <=> 表示双向过渡。

transition('open <=> closed', animate('250ms ease-in-out'))

动画函数

animate 定义时序:持续时间、可选的延迟和缓动。字符串格式为 "duration delay easing"。

animate('500ms 100ms ease-out')

持续时间单位

持续时间可以使用 ms 或 s。不带单位的数字会按毫秒处理。

animate('0.4s')
animate('400ms')
animate(400)

缓动函数

缓动控制加速度,可使用 linear、ease、ease-in、ease-out、ease-in-out 或 cubic-bezier()。

animate('300ms cubic-bezier(0.25, 0.8, 0.25, 1)')

内联目标样式

animate 可以接收第二个 style 参数,将动画过渡到未绑定到命名状态的样式。

transition('* => active', [
  animate('300ms', style({ transform: 'scale(1.1)' }))
])

多个步骤

传入步骤数组,即可在单个过渡中依次运行多个步骤。

transition('closed => open', [
  style({ opacity: 0 }),
  animate('300ms', style({ opacity: 1 }))
])

通配过渡

使用 * 匹配从任意状态开始或到任意状态结束的过渡,这对于通用的进入效果很方便。

transition('* => open', animate('200ms'))

起始样式

在 animate() 之前使用单独的 style() 可以设置起点,然后 Angular 会将动画过渡到目标状态样式。

transition(':enter', [
  style({ opacity: 0 }),
  animate('400ms', style({ opacity: 1 }))
])

时序最佳实践

为保持响应迅速,请将用户界面过渡保持在较短时间内(150–300 毫秒)。较长的持续时间应留给幅度较大且经过刻意设计的运动。请根据所需的效果选择合适的缓动。

快速检查

检验您对过渡和时序的理解。

回顾

您学到了,transition 会通过 => 或 <=> 将状态变化连接到 animate 步骤。时序字符串的格式是持续时间 延迟 缓动,您还可以串联 style 与 animate 步骤来创建连续动画。

常见问题解答

「过渡与时间控制」课时是免费的吗?

是的 — 「过渡与时间控制」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Angular Academy 课程的其余内容,请升级到 CoddyKit PRO。 Angular Academy 课程共包含 4 节课。

「过渡与时间控制」这节课中我会学到什么?

使用过渡在不同状态之间制作动画 你通过在浏览器中直接运行的动手代码来练习 Angular Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Angular Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Angular Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「过渡与时间控制」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Angular Academy 课中编写并运行代码吗?

能。每节 Angular Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 动画基础:trigger 与 state
  2. 过渡与时间控制
  3. 进入与离开动画
  4. 关键帧与交错动画
← 返回 Angular Academy