2009-07-18 18 views
18

io sono in grado di ottenere l'altezza di una pagina in javascript quando la pagina è più grande dello schermo.altezza della pagina in javascript

Ho pensato che questo mi avrebbe ottenere la giusta altezza:

$(document).height(); 

ma che solo ottiene l'altezza dello schermo, lo stesso come:

$('body').height(); 

stessa:

document.offsetHeight; 

Per qualche motivo, tutti questi esempi restituiscono solo l'altezza dello schermo. Qualcuno può aiutare?

+0

Quale versione di jQuery? Secondo i documenti, '$ (document) .height()' ha restituito l'altezza dell'intero documento dal 1.2 – jason

risposta

22

utilizzando jQuery (che è stato specificato), $(document).height() tornerà esattamente quello che stai chiedendo.

Per chiarire l'utilizzo del metodo 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 

Ho il sospetto, che se $(document).height() non funziona per voi, qualcosa non va. Potresti essere:

  1. Chiamarlo troppo presto. Ad esempio, prima che il DOM sia pronto
  2. Alcuni float non liquidati che non causano l'espansione di alcuni elementi a livello di blocco all'altezza reale. Quindi incasinare calcoli di altezza.
  3. Avere qualcosa di critico in posizione assoluta. Gli elementi posizionati in modo assoluto non contribuiscono al calcolo dell'altezza dei loro elementi principali.
+0

Grazie jason. Ho chiamato la funzione troppo presto come hai detto nel tuo primo suggerimento. Per ogni nuova pagina, alcune cose ajax funzionano per aggiornare diverse parti della pagina. – jzp74

0

Se stai bene con jQuery, che ne dici di ottenere il corpo o l'altezza in html? Mi piace:

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

e tu non usi pure js ... :( – vsync

Problemi correlati