2009-07-18 69 views
18

當頁面大於屏幕時,我無法獲得javascript頁面的高度。javascript的頁面高度

我認爲這將讓我在正確的高度:

$(document).height(); 

但只得到了屏幕的高度,一樣:

$('body').height(); 

一樣:

document.offsetHeight; 

由於某些原因,所有這些示例僅返回屏幕的高度。有人可以幫忙嗎?

+0

jQuery的哪個版本?根據文檔,$(document).height()`已經返回整個文檔的高度,因爲1.2 – jason 2009-07-18 14:30:44

回答

22

使用jQuery(你沒有指定),$(document).height()將返回你問什麼了。

爲了澄清height()方法的用法:

$('.someElement').height(); // returns the calculated pixel height of the element(s) 
$(window).height();   // returns height of browser viewport 
$(document).height();  // returns height of HTML document 

我懷疑,如果$(document).height()不爲你工作,什麼是錯的。您可能是:

  1. 調用它太早。就像在DOM準備好之前一樣
  2. 有一些未清除的浮點數不會導致某些塊級元素擴展到其實際高度。因此搞亂了高度計算。
  3. 有一些關鍵的絕對定位。絕對定位的元素不會影響其父元素的高度計算。
+0

謝謝jason。我在第一個建議中提到了這個功能,就像你說的那樣。對於每個新的頁面,都有一些Ajax的東西可以刷新頁面的幾個部分。 – jzp74 2009-07-18 15:58:40

0

如果您對使用jQuery很酷,那麼獲取body或html高度怎麼樣?像:

var winHeight = $('body').height(); 
+0

你沒有用純js ... :( – vsync 2013-04-02 19:10:43