jQueryで、スクロールがある要素の高さを取得する

overflow : auto な要素で、スクロールが発生したかどうか確かめたくて、調べたのでメモ。

// 元の高さ
$('#hoge').attr('scrollHeight');
// 表示されている高さ
$('#hoge').attr('offsetHeight);

これでscrollHeightの方が大きかったらスクロールがあるという事になります。

調べてると、どうもjQuery1.6での仕様変更あたりでいろいろあるらしい。
上記ではなく、下記で方法で取得した方が安全みたい。一応動作確認できました。

// 元の高さ
$('#hoge').get(0).scrollHeight;
// 表示されている高さ
$('#hoge').get(0).offsetHeight;

参考