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

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

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

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

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

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

参考

  • ブックマーク
  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。