.getBoundingClientRect()
テキスト矩形のグループを囲む、テキストの矩形オブジェクトを返します。
文法
rectObject = object.getBoundingClientRect();
戻り値は、要素のgetClientRects()によって返された矩形が結合した TextRectangleオブジェクトです。 これはすなわち、要素に関連付くCSSボーダーボックスということになります。
戻り値であるTextRectangleオブジェクトは、
ボーダーボックスをピクセルで表す読み込み専用のプロパティで、
left
、top
、right
、bottom
を含みます。
top
とleft
は、ビューポートの左上からの相対になります。
注意: Gecko 1.9.1で、width
とheight
プロパティが、
TextRectangle
オブジェクトへ追加されました。
空のボーダーボックスは完全に無視されます。
もし、全ての要素のボーダーボックスが空の場合、
返される矩形はwidth
とheight
が0で、
top
とleft
は要素の最初(コンテンツ順で)のCSSボックスのボーダーボックスの左上になります。
外接する四角形を計算する際に、
ビューポート領域(または、その他のスクロール可能領域)で行われたスクロール量が考慮されます。
これは、top
とleft
のプロパティが、
スクロール位置が変更されると、すぐに値を変更することを意味します。(翻訳に自信なし)
(そのため、それらの値はビューポートに相対的であり、絶対的ではないことになります。)
これが望まれない振る舞いである場合、top
とleft
プロパティへ現在のスクロール位置を追加することで
(window.scrollXとwindow.scrollYを介して)、
現在のスクロール位置から独立した一定の値を取得します。
注意: Gecko 12.0から、要素の矩形の境界を計算する際に、
CSS transforms
の影響を考慮するようになりました。
クロスブラウザ互換性のため、下記を使用する場合を除き、
// window.pageXOffsetとwindow.pageYOffsetが未定義
// (更にwindow.pageXOffsetとwindow.pageYOffsetも未定義)
// である場合、
(((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.ScrollLeft == 'number' ? t : document.body).ScrollLeft
// 且つ
(((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.ScrollTop == 'number' ? t : document.body).ScrollTop
window.scrollX
とwindow.scrollY
の代わりに、
window.pageXOffset
とwindow.pageYOffset
を使用してください。
(翻訳に自信なし)
例
var rect = obj.getBoundingClientRect();
rect
は、left
、top
、
right
、bottom
の4つのプロパティを持つDOMRectオブジェクトです。
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | 1.0 | 3.0 (1.9) | 4.0 | ◯ | 4.0 |
width/height | ◯ | 3.5 (1.9.1) | 9 | ◯ | ◯ |
機能 | Android | Chrome for Android |
Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
基本 | 2.0 | 1.0 | 1.0 (1.9) | 6.0 | ◯ | 4.0 |
width/height | ? | ? | ? | ? | ? | ? |
IE8とそれ以前のバージョンでは、getBoundingClientRect()
に返されるTextRectangle
オブジェクトには、
height
とwidth
プロパティが欠けていました。
また、追加のプロパティ(heightとwidthを含む)はこれらのTextRectangle
に追加することが出来ません。
Gecko 12.0からは、外接する四角形を計算する際に、 CSS transformsの影響が考慮されるようになりました。
仕様
CSSOM Views: The getClientRects() and getBoundingClientRect() methods
注意:
getBoundingClientRect()
は、MSのIE DHTMLオブジェクトモデルに最初に導入されました。
関連項目
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。