2009-07-18 6 views
18

Je n'arrive pas à obtenir la hauteur d'une page en javascript lorsque la page est plus grande que l'écran.hauteur de la page en javascript

Je pensais que ce serait me faire la bonne hauteur:

$(document).height(); 

mais obtient seulement la hauteur de l'écran, même que:

$('body').height(); 

même que:

document.offsetHeight; 

Pour une raison quelconque, tous ces exemples ne renvoient que la hauteur de l'écran. Quelqu'un peut-il aider?

+0

Quelle version de jQuery? Selon les docs, '$ (document) .height()' a retourné la hauteur sur l'ensemble du document depuis 1.2 – jason

Répondre

22

En utilisant jQuery (que vous avez déjà défini) $(document).height() retournera exactement ce que vous demandez.

Pour clarifier l'utilisation de la méthode 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 

Je soupçonne que si $(document).height() ne fonctionne pas pour vous, quelque chose ne va pas. Vous pouvez être:

  1. L'appeler trop tôt. Like, avant que le DOM ne soit prêt
  2. Avoir des flottants non effacés qui ne provoquent pas l'expansion de certains éléments de niveau bloc à leur hauteur réelle. Ainsi gâcher les calculs de hauteur.
  3. Avoir quelque chose de critique absolument positionné. Les éléments absolument positionnés ne contribuent pas aux calculs de hauteur de leurs éléments parents.
+0

Merci jason. J'ai appelé la fonction trop tôt comme vous l'avez dit dans votre première suggestion. Pour chaque nouvelle page, des ajax fonctionnent pour rafraîchir plusieurs parties de la page. – jzp74

0

Si vous êtes cool avec l'utilisation de jQuery, qu'en est-il de la taille du corps ou du format html? comme:

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

vous n'utilisez pas pure js ... :( – vsync

Questions connexes