files/en-us/web/api/element/getanimations/index.md
{{APIRef("Web Animations")}}
The getAnimations() method of the {{domxref("Element")}} interface
(specified on the Animatable mixin) returns an array of all
{{domxref("Animation")}} objects affecting this element or which are scheduled to do so
in future. It can optionally return {{domxref("Animation")}} objects for descendant
elements too.
[!NOTE] This array includes CSS Animations, CSS Transitions, and Web Animations.
getAnimations()
getAnimations(options)
options {{optional_inline}}
subtree
true, causes animations that target
descendants of Element to be returned as well. This includes animations
that target any CSS pseudo-elements attached to
Element or one of its descendants. Defaults to false.An {{jsxref("Array")}} of {{domxref("Animation")}} objects, each representing an
animation currently targeting the {{domxref("Element")}} on which this method is called,
or one of its descendant elements if { subtree: true } is specified.
The following code snippet will wait for all animations on elem and its
descendants to finish before removing the element from the document.
Promise.all(
elem.getAnimations({ subtree: true }).map((animation) => animation.finished),
).then(() => elem.remove());
{{Specifications}}
{{Compat}}