KeyframeEffect: getKeyframes() メソッド
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年7月.
getKeyframes() は KeyframeEffect のメソッドで、このアニメーションを構成する計算済みキーフレームとその計算済みオフセットの配列を返します。
構文
js
getKeyframes()
引数
なし。
返値
以下の形式のオブジェクトの並びを返します。
- プロパティと値のペア
-
アニメーションのそれぞれのキーフレームに含まれているプロパティと値のペアの数だけ入ります。
offset-
キーフレームのオフセットは、
0.0以上1.0以下の数値またはnullで指定します。これは、CSS スタイルシートで@keyframesを使用して、開始状態と終了状態をパーセント値で指定するのと同じです。キーフレームが自動空間で配置される場合、これはnullとなります。 computedOffset-
このキーフレームに対して計算されたオフセット。計算済みキーフレームのリストが生成された際に計算されます。上記の
offsetとは異なり、computedOffsetがnullになることはありません。 easing-
このキーフレームから次のキーフレームまで使用されるイージング関数です。
composite-
このキーフレームで指定された値を基盤と組み合わせるために使用する
KeyframeEffect.composite演算。エフェクトで指定された合成演算が使用されている場合は存在しません。
例
次の例では、getKeyframes()メソッドを使用して転がるアニメーションのキーフレームを確認できます。
js
const emoji = document.querySelector("div"); // アニメーションする要素
const rollingKeyframes = new KeyframeEffect(
emoji,
[
{ transform: "translateX(0) rotate(0)" }, // キーフレーム
{ transform: "translateX(200px) rotate(1.3turn)" }, // キーフレーム
],
{
// キーフレームオプション
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());
html
<div>🤣</div>
仕様書
| Specification |
|---|
| Web Animations> # dom-keyframeeffect-getkeyframes> |
ブラウザーの互換性
関連情報
- ウェブアニメーション API
KeyframeEffectオブジェクトのメソッド