JavaScript アニメーション 停止: Animation.pause() メソッドで制御する方法
JavaScript でアニメーションを一時停止する方法について解説します。`Animation.pause()` メソッドを使って、アニメーションを一時停止する方法、そして再生する方法を具体的なコード例とともに紹介します。
アニメーションの一時停止: Animation.pause() メソッド
- `Animation` インターフェースの `pause()` メソッドは、実行中のアニメーションを一時停止するために使用されます。
- このメソッドは、アニメーションを現在の状態のまま停止させます。
- 例:
<div id="myElement"></div>
<script>
const element = document.getElementById("myElement");
const animation = element.animate(
[
{ transform: 'translateX(0)' },
{ transform: 'translateX(100px)' }
],
{
duration: 2000,
iterations: Infinity
}
);
// アニメーションを一時停止
animation.pause();
</script>
アニメーションの再生: Animation.play() メソッド
- 一時停止したアニメーションを再開するには、`Animation.play()` メソッドを使用します。
- `pause()` メソッドで停止した時点からアニメーションが再開されます。
- 例:
<script>
// アニメーションを再開
animation.play();
</script>
アニメーションの制御: その他のメソッド
アニメーションを制御するためのその他の便利なメソッドを紹介します。
メソッド | 説明 |
---|---|
Animation.finish() |
アニメーションを直ちに終了します。 |
Animation.cancel() |
アニメーションをキャンセルし、初期状態に戻します。 |
Animation.reverse() |
アニメーションを逆再生します。 |
使用例: アニメーションのインタラクティブな制御
ボタンクリックでアニメーションを一時停止、再開する例を以下に示します。
<div id="myElement"></div>
<button id="toggleAnimation">一時停止/再開</button>
<script>
const element = document.getElementById("myElement");
const toggleButton = document.getElementById("toggleAnimation");
const animation = element.animate(
[
{ transform: 'translateX(0)' },
{ transform: 'translateX(100px)' }
],
{
duration: 2000,
iterations: Infinity
}
);
toggleButton.addEventListener('click', () => {
if (animation.playState === 'paused') {
animation.play();
} else {
animation.pause();
}
});
</script>
まとめ
`Animation.pause()` メソッドと `Animation.play()` メソッドを使用することで、 JavaScript でアニメーションを簡単に一時停止、再開できます。 これらのメソッドを利用して、よりインタラクティブでユーザーフレンドリーなウェブページを作成することができます。
参考文献
QA
Q1: `Animation.pause()` を使用してもアニメーションが一時停止しない場合はどうすればよいですか?
A1: アニメーションが開始される前に `animation.pause()` が呼び出されていないか確認してください。アニメーションは開始されてから一時停止する必要があります。
Q2: `Animation.play()` を使用してもアニメーションが再開しない場合はどうすればよいですか?
A2: アニメーションが既に終了しているか、キャンセルされていないか確認してください。終了またはキャンセルされたアニメーションは再開できません。
Q3: アニメーションの特定の時点に移動するにはどうすればよいですか?
A3: `Animation.currentTime` プロパティを使用すると、アニメーションの現在の時間を取得または設定できます。これにより、アニメーションの特定の時点に移動できます。
その他の参考記事:jquery stop