Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年7月.
リサイズオブザーバー API は要素のサイズ変化を監視し、変化するたびにオブザーバーに報告できる、実行可能な方法を提供します。
要素のサイズの変化を検出する方法 (やそのほかの手法) はたくさんありますが、これまでの実装はハック的で脆弱なことがよくありました。
例えば、 メディアクエリー / window.matchMedia はビューポートのサイズの変化を検出したときに特定の箇所に対してレイアウト更新を行う場合に最適ですが、これが特定の要素のサイズの変更を検出したい場合はどうすればよいでしょうか?
この問題を解決するために、サイズの変化を検出させたい要素を示唆する適切なイベント ( Window: resize イベント など) で監視し、 Element.getBoundingClientRect や Window.getComputedStyle などを使用して要素の新しいサイズやその他の特徴を探し出す方法が考えられます。
そのような方法では、限られたユースケースでしか機能せず、パフォーマンス面でも悪影響があり (上記のメソッドを連続的に呼び出すと大きなパフォーマンス低下につながる) 、ブラウザーのウインドウサイズが変わらないと機能しないことが多い傾向があります。
Resize Observer API では、このような問題に対する解決策を提供する他、要素の内容やボーダーボックスのサイズの変化までも簡単に監視し、実行できるようにします。これはウェブプラットフォームでしばしば議論されている 要素クエリー の欠如に対する解決策として提供します。
使い方は簡単で、パフォーマンスオブザーバーや交差オブザーバーなど、他のオブザーバーとほとんど同じです。新しい ResizeObserver オブジェクトを ResizeObserver() コンストラクターで作成できます。 ResizeObserver.observe() で特定の要素のサイズの変更を検出するようにします。コールバック関数はコンストラクターの中で設定し、要素のサイズが変わるたびに毎回実行され、変化後のサイズを通して自由に実行できるようになります。
新しいオブザーバーを登録し、要素の監視を開始あるいは停止する機能を提供します。
ResizeObserverEntryサイズが変化された単一の要素を記述し、要素とその新しいサイズを識別します。
GitHub リポジトリーでは、いくつか簡単な実装例があります。
通常、コードは次のようなパターンに従います (resize-observer-border-radius.html からの引用)。
| Resize Observer # resize-observer-interface |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年11月9日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.