ResizeObserver

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

ResizeObserver インターフェイスは、Element のコンテンツ矩形または SVGElement のバウンディングボックスへの変更を監視します。コンテンツ矩形は、コンテンツを配置できるボックスです。つまり、ボーダーボックスからパディングを引いたものです。(ボーダーとパディングの説明はボックスモデルを見てください。)

ResizeObserver は、無限のコールバックループとそれ自身のコールバック関数でサイズ変更することによって生じるであろう循環的な依存関係を避けます。これは、後続のフレームで DOM のより深い要素のみを処理することによって行われます。実装が仕様に従っている場合は、描画の前およびレイアウトの後にリサイズイベントを呼び出す必要があります。

コンストラクター

ResizeObserver()
新しい ResizeObserver オブジェクトを作成して返します。

プロパティ

なし

イベントハンドラー

なし

メソッド

ResizeObserver.disconnect() (en-US)
監視対象のすべての Element ターゲットの監視を終了します。
ResizeObserver.observe() (en-US)
指定された Element の監視を開始します。
ResizeObserver.unobserve() (en-US)
指定された Element の監視を終了します。

次の例では、幅の変更に応じてボックスの境界線の半径を変更します。

const resizeObserver = new ResizeObserver(entries => {
  for (let entry of entries) {
    entry.target.style.borderRadius = Math.max(0, 250 - entry.contentRect.width) + 'px';
  }
});
resizeObserver.observe(document.querySelector('.box:nth-child(2)'));

仕様

仕様書 ステータス コメント
Resize Observer
ResizeObserver の定義
編集者草案 初期定義

ブラウザの互換性

BCD tables only load in the browser

あわせて参照