2016-09-16 16 views
0

ドキュメントの高さを取得する方法はたくさんありますが、ブラウザの実装が異なるため、ほとんどの場合、ほとんどの場合、大丈夫です。Javascript(またはjQuery)で実際のコンテンツの高さを取得

私のケースでは、私はウィンドウとビューポートの高さよりも小さい高さであることがわかっているページ上にいくつかの要素があります。私が得ようとしているのは、すべてのレンダリングされた要素の実際の高さです。 (Firefoxでテストして)動作しません

もの:

  1. $(document).height(); // gives the window height
  2. document.body.scrollHeight; // gives 7, its always 7 I don't know why
  3. document.body.offsetHeight; // also gives 7
  4. document.documentElement.clientHeight; // sometimes gives window height
  5. document.documentElement.scrollHeight; //gives window height
  6. document.documentElement.offsetHeight; generally gives a value in the range of 23

現在のところ、私の考えでは、divheight: 0に挿入して、ページの下に$(div).offset().topをつけていると思っていますが、これは間違っている可能性が高いと思います未来。

私はそれを行う前に、だから... ...

は、ウィンドウの高さよりも低いのです時にコンテンツの高さを知る方法はありますか?

EDIT:

人々は明確化を求めています。私が望むことのjsFiddleの例/私が得ている結果を得ます。 https://jsfiddle.net/8Lu2zcw8/1/

実行すると、Win HeightとDoc Heightが同じ値になり、コンソールに書き出されます。

EDIT2:彼のソリューションへのコメントで@ティム・ベルマーレンで指摘したように

は私の問題は、体が原因浮かべおよび絶対位置指定要素にコンテンツを正しくラップしませによるものでした。

+1

'$(document).height(); //ウィンドウの高さを 'noにすると、ドキュメントの高さを与える:https://jsfiddle.net/9nm032hs/。どんな増加もブラウザによってボディに置かれたデフォルトのパディングによって引き起こされます。これは、リセットスタイルシートで修正する必要があります。表示されたものが問題の詳細ではなく機能しないものであれば、あなたを助けることは困難です。ブラウザの違いは何ですか?あなたのHTMLは何ですか? –

+0

jsFiddleの例が追加されました – Morvael

答えて

2

$(document.body).height()を使用することをおすすめします。これが唯一の直接の子が浮遊しているときは、本体のパディング、マージンとbody要素の境界です0の場合に正しい結果を与えるか、または絶対的な位置に置かれます

html, 
body { height: 100%; } 

CSSで

あなたは配置する必要がありますこれらの要素の高さはカウントされません。したがって、浮動要素の場合、これらのラッピング問題を解決するために親をクリアすることになります。

あなたは、ウィンドウの、あなたのコンテンツのサイズをない与える$(document.body).outerHeight(includeMargin)

+0

$(document.body).outerHeight(false); document.body.scrollHeight(7)$(document.body).outerHeight(true)と同じです。 document.documentElement.offsetHeight(23) – Morvael

+2

と同じです。Firebugでボディの高さを調べ、「計算済み」タブを参照して、body要素内の要素と比較してください。ボディーがエレメントの高さよりも小さいことに気がついた場合、ボディーはエレメントの周りに巻き付けられません。通常浮動要素や絶対位置によって発生します。 –

+0

ありがとうTim!あなたは正しいのですが、ページ全体が絶対配置されたdiv内に浮かんでいる要素から作られたように、ボディはラップされませんでした。私の防衛では、古いコードを微調整しています.. – Morvael

0

$(document).height()を使用することができない場合。それがあなたのウィンドウのサイズを与えるならば、あなたはたぶんあなたのCSSを台無しにしました。また、試すことができます$('body').height()

関連する問題