--- title: ResizeObserver slug: Web/API/ResizeObserver tags: - API - Experimental - ResizeObserver - インターフェイス - オブザーバー - コンテンツボックス - バウンディングボックス - リサイズオブザーバー API - リファレンス translation_of: Web/API/ResizeObserver ---
ResizeObserver
インターフェイスは、{{domxref('Element')}} のコンテンツ矩形または {{domxref('SVGElement')}} のバウンディングボックスへの変更を監視します。コンテンツ矩形は、コンテンツを配置できるボックスです。つまり、ボーダーボックスからパディングを引いたものです。(ボーダーとパディングの説明はボックスモデルを見てください。)
ResizeObserver は、無限のコールバックループとそれ自身のコールバック関数でサイズ変更することによって生じるであろう循環的な依存関係を避けます。これは、後続のフレームで DOM のより深い要素のみを処理することによって行われます。実装が仕様に従っている場合は、描画の前およびレイアウトの後にリサイズイベントを呼び出す必要があります。
ResizeObserver
オブジェクトを作成して返します。なし
なし
次の例では、幅の変更に応じてボックスの境界線の半径を変更します。
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)'));
仕様書 | ステータス | コメント |
---|---|---|
{{SpecName('Resize Observer','#resize-observer-interface','ResizeObserver')}} | {{Spec2('Resize Observer')}} | 初期定義 |
{{Compat("api.ResizeObserver")}}