- Notifications
You must be signed in to change notification settings - Fork 22.7k
/
Copy pathindex.md
98 lines (73 loc) · 2.65 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
title: "KeyframeEffect: getKeyframes() method"
short-title: getKeyframes()
slug: Web/API/KeyframeEffect/getKeyframes
page-type: web-api-instance-method
browser-compat: api.KeyframeEffect.getKeyframes
---
{{ 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.
## Syntax
```js-nolint
getKeyframes()
```
### Parameters
None.
### Return value
Returns a sequence of objects with the following format:
- property value pairs
- : As many property value pairs as are contained in each keyframe of the animation.
-`offset`
- : The offset of the keyframe specified as a number between `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`
- : The computed offset for this keyframe, calculated when the list of computed keyframes was produced. Unlike **`offset`,** above, the **`computedOffset`** is never `null`.
-`easing`
- : The [easing function](/en-US/docs/Web/CSS/easing-function) used from this keyframe until the next keyframe in the series.
-`composite`
- : The {{domxref("KeyframeEffect.composite")}} operation used to combine the values specified in this keyframe with the underlying value. This will be absent if the composite operation specified on the effect is being used.
## Examples
In the following example, we can inspect the rolling animation to see its keyframes using the `getKeyframes()` method:
```js
constemoji=document.querySelector("div"); // element to animate
constrollingKeyframes=newKeyframeEffect(
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",
},
);
constrollingAnimation=newAnimation(rollingKeyframes, document.timeline);
rollingAnimation.play();
// Array [ {…}, {…} ]
console.log(rollingAnimation.effect.getKeyframes());
```
```html
<div>🤣</div>
```
```css hidden
body {
box-shadow: 05px5pxpink;
}
div {
width: fit-content;
margin-left: calc(50%-132px);
font-size: 64px;
user-select: none;
margin-top: 1rem;
}
```
{{ EmbedLiveSample("Examples", "100%", "120") }}
## Specifications
{{Specifications}}
## Browser compatibility
{{Compat}}
## See also
-[Web Animations API](/en-US/docs/Web/API/Web_Animations_API)
- Method of {{domxref("KeyframeEffect")}} objects.