--- title: Web Animations API slug: Web/API/Web_Animations_API tags: - web animations api translation_of: Web/API/Web_Animations_API ---

{{DefaultAPISidebar("Web Animations")}}{{ SeeCompatTable() }}

Web Animations API 允许同步和定时更改网页的呈现, 即DOM元素的动画。它通过组合两个模型来实现:时序模型 和 动画模型。

概念和用法

Web Animations API 为浏览器和开发人员提供了一种用于描述DOM元素的动画的通用语言。要获得有关API背后的概念以及如何使用它的更多信息,请阅读使用Web Amimations API

网页动画接口

{{domxref("Animation")}}
提供播放控制、动画节点或源的时间轴。 可以接受使用{{domxref("KeyframeEffect.KeyframeEffect")}}构造函数创建的对象作为参数。
{{domxref("KeyframeEffect")}}
描述动画属性的集合,调用keyframes及{{domxref("Animation Effect Timing Properties")}}。 然后可以使用 {{domxref("Animation")}} 构造函数进行播放。
{{domxref("AnimationTimeline")}}
表示动画的时间轴。 此接口用以定义时间轴功能(继承自{{domxref("DocumentTimeline")}}和{{domxref("future timeline")}}),并且本身不被开发人员访问。
{{domxref("DocumentTimeline")}}
表示动画时间轴,包括默认的{{domxref("DocumentTimeline")}}(通过{{domxref("Document.timeline")}}访问)。
{{domxref("AnimationEffectTiming")}}
包含{{domxref("KeyframeEffect")}}的{{domxref("KeyframeEffect.timing", "timing")}}返回的定时属性对象。 它从{{domxref("AnimationEffectTimingReadOnly")}}继承其属性,但是以非只读形式。
{{domxref("SharedKeyframeList")}}
表示可在{{domxref("KeyframeEffect")}}对象之间共享的关键帧序列。 通过使用该对象,多个{{domxref("KeyframeEffect")}}对象可以重用相同的关键帧,而无需支付多次解析它们的成本。
{{domxref("AnimationEffectTimingProperties")}}
{{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly()")}}和 {{domxref("KeyframeEffect.KeyframeEffect()")}}的定时属性对象。

扩展的其他接口

The Web Animations API 向{{domxref("document")}}{{domxref("element")}} 添加了一些新的功能。

扩展到 Document 的接口

{{domxref("document.timeline")}}
DocumentTimeline 表示默认文档时间轴
{{domxref("document.getAnimations()")}}
返回当前对文档中的元素有效的{{domxref("Animation")}}对象的数组。

扩展到 Element 的接口

{{domxref("Element.animate()")}}
用于在元素上创建和播放动画的快捷方式。 它返回创建的{{domxref("Animation")}}对象实例。

Web动画只读接口

规格中包括以下接口,用于定义在多个其他位置使用的功能。 你不会在Web开发工作中直接使用这些接口,但他们能帮助库或框架作者了解这些接口如何工作,使他们的库的实现可以更有效,或者浏览器工程师寻找一个比规范提供的内容更容易的参考。

{{domxref("AnimationEffectTimingReadOnly")}}
A dictionary object of timing properties, which are inherited by the mutable {{domxref("AnimationEffectTiming")}} interface associated with {{domxref("KeyframeEffect")}}.
{{domxref("AnimationEffectReadOnly")}}
Defines current and future "Animation Effects" like {{domxref("KeyframeEffect")}}, which can be passed to {{domxref("Animation.Animation")}} objects for playing, and {{domxref("KeyframeEffectReadOnly")}} which is used by {{domxref("KeyframeEffect")}} (inherited by CSS Animations and Transitions).
{{domxref("KeyframeEffectReadOnly")}}
Describes sets of animatable properties and values that can be played using the {{domxref("Animation.Animation()")}} constructor, and which are inherited by {{domxref("KeyframeEffect")}}. 

规范

Specification Status Comment
{{SpecName('Web Animations')}} {{Spec2('Web Animations')}} Initial definition

浏览器支持

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support (Element.animate()) {{ CompatChrome(36.0) }}
 
{{ CompatGeckoDesktop(48)}} {{ CompatNo }}

29
28 behind pref

{{ CompatNo }}
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support {{ CompatNo }} {{CompatChrome(42.0)}} {{ CompatGeckoMobile(48) }} {{ CompatNo }} {{ CompatNo }} {{ CompatNo }} {{ CompatNo }} {{ CompatChrome(42.0) }}
[1] 仅在Firefox 52 Nightly和Dev版本中启用。在测试版/发布版中关闭。

 

相关内容