2009-07-18 18 views
18

Nie mogę uzyskać wysokości strony w javascript, gdy strona jest większa niż ekran.Wysokość strony w javascript

myślałem, że to dostanie mi właściwą wysokość:

$(document).height(); 

ale tylko dostaje wysokość ekranu, tak samo jak:

$('body').height(); 

samo jak:

document.offsetHeight; 

Z jakiegoś powodu wszystkie te przykłady zwracają tylko wysokość ekranu. Czy ktoś może pomóc?

+0

Której wersji jQuery? Zgodnie z dokumentami, '$ (document) .height()' zwrócił wysokość całego dokumentu od 1.2 – jason

Odpowiedz

22

jQuery (co zrobiłeś określić), $(document).height() powróci dokładnie co prosisz.

Aby wyjaśnić wykorzystanie metody 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 

podejrzewam, że jeśli $(document).height() nie działa dla Ciebie, coś jest nie tak. Możesz być:

  1. Wezwanie to za wcześnie. Np. Zanim DOM będzie gotowy
  2. Masz kilka nieoczyszczonych elementów pływających, które nie powodują powiększenia niektórych elementów poziomu bloku do rzeczywistej wysokości. W ten sposób mylące obliczenia wysokości.
  3. Coś krytycznego jest absolutnie ustawione. Absolutnie rozmieszczone elementy nie przyczyniają się do obliczeń wysokości ich elementów macierzystych.
+0

Dzięki Jason. Zadzwoniłem do tej funkcji zbyt wcześnie, jak powiedziałeś w swojej pierwszej sugestii. Na każdej nowej stronie znajduje się trochę rzeczy z ajaxów, które odświeżają kilka części strony. – jzp74

0

Jeśli chcesz korzystać z jQuery, co z uzyskaniem wysokości ciała lub html? na przykład:

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

nie używasz czystego js ... :( – vsync

Powiązane problemy