offsetTopやらoffsetHeightやら
wrote2011.11.28
コンテンツの高さだったり、ページ内の指定した要素を表示するようスクロールさせようとした際とか、毎回同じことをネット検索してしまうので、ここで高さを取得する方法に限定してまとめておきます。
- ①画面の表示領域
- window.innerHeight
- ②現在表示している上部は、コンテンツ上部からどのくらい離れているか
- window.pageYoffset
- ③指定した要素は、コンテンツ上部からどのくらい離れているか
- document.getElementById('test').offsetTop
- ④内包されたコンテンツの高さ
- document.getElementsByTagName('body')[0].offsetHeight
- ⑤コンテンツ全体の高さ
- document.documentElement.clientHeight
- document.documentElement.scrollHeight
⑤ですが、自分はclientHeightを使っているのですが、scrollHeightでも同じ値が返ってくるようです(違いは勉強不足のため不明)。
④と⑤の違いは、大雑把に言ってしまえば、一番外側のコンテンツに対してのmargin-topとmargin-bottomを含めるかどうか。
クロスブラウザで問題ないか調査していませんが、とりあえずスマホやモダンブラウザでは事足ります。