jQueryで高さの取得と設定(height,innerHeight,outerHeight)

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

jQueryで要素の高さを取得する方法ですが、高さといってもborderを含んだりpaddingの内側だったりとさまざまです。

高さを指定したり変更する方法も併せてご紹介します。

 

要素の高さを取得

要素の高さは以下の図のように、4パターン取得できます。

jquery_height

上図の赤字がメソッドですが、要素のどの部分を取得するかでそれぞれ用意されていますので、以下でご紹介します。

height() でpaddingの内側を取得

paddingの内側の高さを取得します。

基本構文

$(‘p’).height()

HTML&CSS

jQuery

 結果(コンソール)

480

上記のようにpaddingの内側の高さが取得できました。

ちなみにheight()pxなどの単位は除外され、整数で取得されます。

 

コンソールについては下記ページでご紹介しています。

参考:jQueryでコンソールログを使ったデバッグ方法

innerHeight() でborderの内側を取得

paddingを含めたborderの内側の高さを取得します。

基本構文

$(‘p’).innerHeight()

HTML&CSS

jQuery

 結果(コンソール)

500

上記のようにpaddingの値を含めたborderの内側の高さが取得できました。

paddingは上下10pxずつなので、以下のように500pxとなります。

本体 480px + 上padding 10px + 下padding 10px = 500px

outerHeight() でborderを含めて取得

paddingとborderを含めた高さを取得します。

基本構文

$(‘p’).outerHeight()

HTML&CSS

jQuery

 結果(コンソール)

506

上記のようにpaddingborderの値を含めた高さが取得できました。

paddingが上下10pxずつとborderが上下3pxずつなので、以下のように506pxとなります。

本体 480px + 上padding 10px + 下padding 10px + 上border 3px + 下border 3px = 506px

outerHeight(true) でmarginも含めて取得

outerHeight()の引数にtrueを指定するだけでpaddingborderに加え、marginまでも含めた高さを取得します。

基本構文

$(‘p’).outerHeight(true)

HTML&CSS

jQuery

 結果(コンソール)

526

上記のようにpaddingbordermarginの値を含めた高さが取得できました。

paddingmarginが上下10pxずつとborderが上下3pxずつなので、以下のように526pxとなります。

本体 480px + 上padding 10px + 下padding 10px + 上border 3px + 下border 3px + 上margin 10px + 下margin 10px = 526px

ブラウザの高さを取得

要素だけでなく、ブラウザの高さも取得できます。

現在表示されているブラウザ枠内の高さです。

 結果(コンソール)

715

スクロールイベントでよく使いますね。

ドキュメントの高さを取得

ブラウザの枠外に隠れている部分も含めた、ドキュメント全体の高さも取得できます。

 結果(コンソール)

1618

要素の高さを設定、変更する

上記でご紹介してきたメソッドを使って、高さを変更したり設定できます。

ここでは一気にご紹介します。

HTML&CSS

jQuery

 結果(HTML)

<p>要素にstyle属性が追加され、それぞれに値が追加されました。

 

通常innerHeight()outerHeight()は高さの設定はできないという認識でしたが、試してみると上記のように動作しました。

しかもinnerHeight()paddingを除いた値が、 outerHeight()paddingborderを除いた値が設定され、何気に便利ですね。

ちなみにouterHeight(true)での値の設定はできませんでした。

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*