Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
24
12
23
7
25
7

window.cancelAnimationFrame() メソッドは、以前に window.requestAnimationFrame() の呼び出しによってスケジュールされたアニメーションフレームリクエストをキャンセルします。

24
12
23
7
25
7
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: webkit (10)
注釈 1件
実装メモ
  • バージョン17以前では、Edgeはペイントサイクル前に`requestAnimationFrame`を確実に呼び出さない。
注釈 7件
実装メモ
  • コールバックパラメータは `DOMHighResTimestamp` 型です。これは、10マイクロ秒の精度を持ち、`performance.now()` と同様に時刻が0であることを意味します。
  • コールバックパラメータは `DOMTimestamp` 型です。これは、ミリ秒単位の精度を持ち、`Date.now()` を呼び出した時点を 0 として扱います。
  • 引数を指定せずに呼び出すことができます。
削除済み
  • このバージョンで機能が削除されました (42)
  • このバージョンで機能が削除されました (11)
対応条件
  • ベンダープレフィックス付きで対応: moz (11)
  • ベンダープレフィックス付きで対応: moz (4)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: webkit (6)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: webkit (18)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: webkit (6)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (23)
対応条件
  • ベンダープレフィックス付きで対応: moz (11)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (7)
対応条件
  • ベンダープレフィックス付きで対応: webkit (6)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (7)
対応条件
  • ベンダープレフィックス付きで対応: webkit (6)

基本構文

JAVASCRIPT
const element = document.getElementById("some-element-you-want-to-animate");
let start;

function step(timestamp) {
  if (start === undefined) {
    start = timestamp;
  }
  const elapsed = timestamp - start;

  // Math.min() is used here to make sure the element stops at exactly 200px
  const shift = Math.min(0.1 * elapsed, 200);
  element.style.transform = `translateX(${shift}px)`;
  if (shift < 200) {
    requestAnimationFrame(step);
  }
}

requestAnimationFrame(step);

実務での使いどころ

  • requestAnimationFrame() の活用

    window.requestAnimationFrame() メソッドは、アニメーションを実行したいことをブラウザーに指示します。

注意点

  • 古いブラウザでは対応していない場合がある。

実装メモ

  • 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。