2011-08-31 12 views
5

Il tittle dice davvero tutto.jQuery - Rileva se l'altezza dell'elemento è più grande dell'altezza della finestra e fai qualcosa al riguardo

Fondamentalmente voglio rilevare se s' height questo div è più grande di windowheight e fare qualcosa al riguardo ..

ho fatto ma non posso farlo funzionare http://jsfiddle.net/dhkCa/3 Perché solito funziona?

Modifica: corretto un piccolo errore nel codice css. Collegamento Jsfiddle aggiornato.

+0

se avvisi i 2 valori, noterai che l'altezza del documento sembra essere 20px superiore all'altezza div [esempio qui] (http://jsfiddle.net/dhkCa/8/) –

risposta

17

I document 's contiene tutti gli elementi in sé, e la sua altezza è una somma delle altezze di tutti quegli elementi (tutti gli elementi display:block comunque, più margin e padding); quindi nessun elemento contenuto può essere più alto del documento stesso. Quello che dovete fare è confrontare l'altezza s' il window, non il documento del:

var div = $("div").height(); 
var win = $(window).height(); 

if (div > win) { 
    $("div").addClass('red'); 
} 

JS Fiddle demo.

+0

Giusto .. Che è anche chiaramente affermato jquery api .. Ancora una volta non sono riuscito a comprendere ciò che ho letto. Grazie (+1) e accetterò quando posso. – Joonas

+0

Sei il benvenuto; Sono felice di essere stato d'aiuto! = D –

0

Per un elemento con un'altezza di scorrimento diversa dall'altezza di scorrimento del documento, è possibile utilizzare element.getBoundingClientRect().height(Docs).

Problemi correlati