files/en-us/web/api/keyframeeffect/getkeyframes/index.md
{{ APIRef("Web Animations") }}
The getKeyframes() method of a {{domxref("KeyframeEffect")}} returns an Array of the computed keyframes that make up this animation along with their computed offsets.
getKeyframes()
None.
Returns a sequence of objects with the following format:
offset
0.0 and 1.0 inclusive or null. This is equivalent to specifying start and end states in percentages in CSS stylesheets using @keyframes. This will be null if the keyframe is automatically spaced.computedOffset
offset, above, the computedOffset is never null.easing
composite
In the following example, we can inspect the rolling animation to see its keyframes using the getKeyframes() method:
const emoji = document.querySelector("div"); // element to animate
const rollingKeyframes = new KeyframeEffect(
emoji,
[
{ transform: "translateX(0) rotate(0)" }, // keyframe
{ transform: "translateX(200px) rotate(1.3turn)" }, // keyframe
],
{
// keyframe options
duration: 2000,
direction: "alternate",
easing: "ease-in-out",
iterations: "Infinity",
},
);
const rollingAnimation = new Animation(rollingKeyframes, document.timeline);
rollingAnimation.play();
// Array [ {…}, {…} ]
console.log(rollingAnimation.effect.getKeyframes());
<div>🤣</div>
body {
box-shadow: 0 5px 5px pink;
}
div {
width: fit-content;
margin-left: calc(50% - 132px);
font-size: 64px;
user-select: none;
margin-top: 1rem;
}
{{ EmbedLiveSample("Examples", "100%", "120") }}
{{Specifications}}
{{Compat}}