使用 node.offsetWidth
メソッドを使用すると、要素の幅を取得できます。類似のメソッドは以下の通りです:
- offsetHeight
- offsetTop
- offsetBottm
- offsetLeft
- offsetRight
問題の発生#
offset メソッドで取得した値は四捨五入されますが、開発中には正確な値が必要な場合があります。そのような場合には、offset メソッドを使用することは適していません。
解決策#
getBoundingClientRect()
メソッドを使用すると、要素の正確な値(小数点以下 6 桁まで)を取得できます。
使用法#
例えば node.getBoundingClientRect().width
を使用すると、要素の幅を取得できます。類似のメソッドは以下の通りです:
- getBoundingClientRect().height
- getBoundingClientRect().top
- getBoundingClientRect().bottom
- getBoundingClientRect().left
- getBoundingClientRect().right
詳細#
getBoundingClientRect()
は矩形のコレクションを返します。現在の要素のブラウザ内での位置とスペースのサイズを表します。width と height 以外の属性は、ビューポートの左上隅を基準に計算されます。以下は図を示します: