菜单

实用工具类和自定义

相关源文件

本文档介绍了 Animate.css 提供的实用类,并解释了如何通过 CSS 变量自定义动画。实用类提供了一种声明式的方式来控制动画的时序、延迟和重复,而自定义选项则允许在不修改核心库的情况下精细调整动画行为。

有关可用动画类别和效果的信息,请参阅 动画类别

实用类概述

Animate.css 提供了一些实用类,它们与基础动画类配合使用以控制动画行为。这些实用类利用 CSS 自定义属性(变量)来实现一致且易于自定义的动画。

来源: source/_base.css1-68 docsSource/sections/02-utilities.md1-93

CSS 变量用于自定义

Animate.css 使用三个主要的 CSS 变量来控制动画行为

CSS 变量默认值目的
--animate-duration1秒控制动画持续时间
--animate-delay1秒控制动画延迟
--animate-repeat1控制动画重复次数

这些变量可以在两个级别进行自定义

  1. 全局级别 - 影响项目中的所有动画
  2. 局部级别 - 仅影响特定元素

来源: docsSource/sections/01-usage.md64-93 docsSource/sections/02-utilities.md22-34 docsSource/sections/02-utilities.md51-66

延迟类

延迟类会在动画开始播放前添加一个等待时间,这对于创建动画序列非常有用。

可用的延迟类

类名默认延迟实现
animate__delay-1s1秒animation-delay: var(--animate-delay)
animate__delay-2s2秒animation-delay: calc(var(--animate-delay) * 2)
animate__delay-3s3秒animation-delay: calc(var(--animate-delay) * 3)
animate__delay-4s4秒animation-delay: calc(var(--animate-delay) * 4)
animate__delay-5s5秒animation-delay: calc(var(--animate-delay) * 5)

使用示例

自定义延迟

要按比例调整所有延迟时间,请修改 --animate-delay CSS 变量

来源: source/_base.css22-40 docsSource/sections/02-utilities.md5-34

速度类

速度类会改变动画播放的速度。它们通过乘以或除以基础持续时间来影响 animation-duration 属性。

可用的速度类

类名对持续时间的影响实现
animate__slower慢 3 倍animation-duration: calc(var(--animate-duration) * 3)
animate__slow慢 2 倍animation-duration: calc(var(--animate-duration) * 2)
animate__fast快 20%animation-duration: calc(var(--animate-duration) * 0.8)
animate__faster快 2 倍animation-duration: calc(var(--animate-duration) / 2)

使用示例

自定义动画速度

要全局调整动画速度

您也可以调整特定元素的动画速度

来源: source/_base.css42-56 docsSource/sections/02-utilities.md36-66

重复类

重复类控制动画播放的次数。

可用的重复类

类名重复次数实现
animate__repeat-11 次animation-iteration-count: var(--animate-repeat)
animate__repeat-22 次animation-iteration-count: calc(var(--animate-repeat) * 2)
animate__repeat-33 次animation-iteration-count: calc(var(--animate-repeat) * 3)
animate__infinite无限animation-iteration-count: infinite

使用示例

自定义重复次数

要调整基础重复次数

请注意,animate__infinite 不受 --animate-repeat 变量的影响,因为它直接设置了 animation-iteration-count: infinite

来源: source/_base.css6-20 docsSource/sections/02-utilities.md67-93

实现细节

实用类在基础 CSS 文件中实现,利用 CSS 计算来维持值之间的比例关系。

来源: source/_base.css1-68

实际示例

组合实用类

您可以组合多个实用类来创建精确计时动画

通过 JavaScript 进行渐进增强

您可以通过修改 CSS 变量来动态控制动画,例如使用 JavaScript。

来源: docsSource/sections/01-usage.md83-93 docsSource/sections/02-utilities.md39-42

无障碍性考量

Animate.css 尊重 prefers-reduced-motion 媒体查询,这对于患有前庭障碍或对运动敏感的用户至关重要。启用此偏好设置后:

  • 动画持续时间减少到 1 毫秒
  • 过渡持续时间减少到 1 毫秒
  • 动画迭代次数限制为 1 次
  • 退出动画仅将不透明度设置为 0

此实现确保在尊重用户减少动画偏好的同时,保持内容的可用性。

来源: source/_base.css58-68 docsSource/sections/03-best-practices.md38-46

最佳实践

使用实用类和自定义功能时

  1. 策略性地使用延迟 - 用于创建序列或以特定顺序吸引注意力
  2. 避免无限动画 - 这些动画可能令人分心且资源密集
  3. 尊重动画速度 - 过慢的动画会使用户感到沮丧,而过快的动画可能会被错过
  4. 谨慎应用重复次数 - 多次重复应有其目的,不应仅仅为了视觉效果
  5. 尽可能本地自定义 - 将自定义变量应用于特定元素,而不是全局更改所有动画

来源: docsSource/sections/03-best-practices.md1-32