2009-07-18 13 views
18

No puedo obtener el alto de una página en javascript cuando la página es más grande que la pantalla.altura de página en javascript

pensé que esto me obtener la altura correcta:

$(document).height(); 

sino que sólo se pone la altura de la pantalla, lo mismo que:

$('body').height(); 

mismo que:

document.offsetHeight; 

Por alguna razón, todos estos ejemplos solo devuelven el alto de la pantalla. ¿Alguien puede ayudar?

+0

¿Qué versión de jQuery? De acuerdo con los documentos, '$ (documento) .height()' ha devuelto la altura en todo el documento desde 1.2 – jason

Respuesta

22

Usando jQuery (que se especificó), $(document).height() volverá exactamente lo que estás pidiendo.

Para aclarar el uso del método 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 

sospecho, que si $(document).height() no está funcionando para ti, algo está mal. Puede ser:

  1. Llamadas demasiado temprano. Al igual que, antes de que el DOM esté listo
  2. Ten algunos flotadores no despejados que no están causando que algunos elementos de nivel de bloque se expandan a su altura real. Así desordenando los cálculos de altura.
  3. Tenga algo crítico absolutamente posicionado. Los elementos posicionados de forma absoluta no contribuyen a los cálculos de altura de sus elementos principales.
+0

Gracias jason. Llamé a la función demasiado temprano, como dijiste en tu primera sugerencia. Para cada página nueva, tenga algunas cosas ajax trabajando para actualizar varias partes de la página. – jzp74

0

Si no tiene inconveniente con el uso de jQuery, ¿qué le parece obtener la altura del cuerpo o html? como:

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

y u no use pure js ... :( – vsync

Cuestiones relacionadas