--- title: Element.animate() slug: Web/API/Element/animate translation_of: Web/API/Element/animate ---
{{domxref("Element")}} インターフェースの animate()
メソッドは、新たに {{domxref("Animation")}} の作成、対象要素への適用、そしてアニメーションの再生を行うショートカットメソッドです。戻り値として {{domxref("Animation")}} オブジェクトのインスタンスを返します。
element.animate(keyframes, options);
keyframes
element.animate({ opacity: [ 0, 1 ], // [ フレーム 1, フレーム 2 ] color: [ "#fff", "#000" ] // [ フレーム 1, フレーム 2 ] }, 2000);
element.animate([ { // フレーム 1 opacity: 0, color: "#fff" }, { // フレーム 2 opacity: 1, color: "#000" } ], 2000);
options
animate()
に渡すことができます。id
composite
replace
です。
add
dictates an additive effect, where each successive iteration builds on the last. 例として transform
を挙げると
、translateX(-200px)
は自身よりも前に指定されていた rotate(20deg)
の値を上書きすることはありませんが、合成結果は translateX(-200px) rotate(20deg)
になります。accumulate
を指定した場合、add
に似ていますがよりスマートな結果が得られ、blur(2)
と blur(5)
の合成結果は blur(7)
になります(blur(2) blur(5)
ではありません)。replace
を指定した場合、前回の値は新しい値で上書きされます。iterationComposite
accumulate
または replace
を指定できます(上記参照)。デフォルト値は replace
です。spacing
distribute
です。
distribute
を指定した場合、キーフレーム間の時間間隔が等しくなるように配置されます。paced
を指定した場合、キーフレーム間のアニメーションにおける時間変化の割合(下図におけるグラフの傾き)が等しくなるように配置されます。以下の例では、CSS の left プロパティに関する 4 つのキーフレームを指定したアニメーションについて、spacing プロパティの働きを示しています(ここでは仕様書の例を参考にしています)。
/* 左のグラフ */ elem.animate([ { left: '0px' }, { left: '-20px' }, { left: '100px' }, { left: '50px' } ], 1000); /* spacing はデフォルト値 "distribute" */
/* 右のグラフ */ elem.animate([ { left: '0px' }, { left: '-20px' }, { left: '100px' }, { left: '50px' } ], { duration: 1000, spacing: "paced(left)" });
{{domxref("Animation")}} を返します。
Down the Rabbit Hole (with the Web Animation API) のデモでは、上に向かって永遠に流れ続けるアニメーションが #tunnel
要素に施されています。ここでは、アニメーションを素早く作成して再生できる animate()
メソッドが用いられています。keyframes として渡されているオブジェクト配列と、timing options として渡されているオブジェクトに注目してください。
document.getElementById("tunnel").animate([ // keyframes { transform: 'translate3D(0, 0, 0)' }, { transform: 'translate3D(0, -300px, 0)' } ], { // timing options duration: 1000, iterations: Infinity });
仕様書 | 策定状況 | 備考 |
---|---|---|
{{SpecName('Web Animations', '#the-animatable-interface', 'animate()' )}} | {{Spec2('Web Animations')}} | Editor's draft. |
{{CompatibilityTable}}
機能 | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
基本サポート | {{CompatChrome("39")}} | {{CompatUnknown}} | {{ CompatGeckoDesktop("47.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
機能 | Android | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|---|
基本サポート |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{ CompatGeckoMobile("47.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |