2011-08-31 16 views
5

La tilde realmente lo dice todo.jQuery - Detecta si la altura del elemento es mayor que la altura de la ventana y haz algo al respecto

Básicamente quiero para detectar si esto div 's height es más grande que windowheight y hacer algo al respecto ..

yo he hecho esto, pero no puedo conseguir que funcione http://jsfiddle.net/dhkCa/3 Por qué planteo que funcione?

Editar: Se corrigió un pequeño error en el código css. Enlace Jsfiddle actualizado.

+0

si alerta los 2 valores, notará que la altura del documento parece ser 20px mayor que la altura del div [ejemplo aquí] (http://jsfiddle.net/dhkCa/8/) –

Respuesta

17

document 's contiene todos los elementos dentro de sí mismo, y su altura es una suma de las alturas de todos esos elementos (todos los elementos display:block de todos modos, más margen y relleno); por lo tanto, ningún elemento contenido puede ser más alto que el documento en sí. Lo que hay que hacer es comparar la altura window 's, no el documento de:

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

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

JS Fiddle demo.

+0

Correcto .. Eso también está claramente indicado jquery api .. Una vez más, simplemente no pude comprender lo que leo. Gracias (+1) y lo aceptaré cuando pueda. – Joonas

+0

Eres bienvenido; ¡Me alegro de haber sido de ayuda! = D –

0

Para un elemento que tiene una altura de desplazamiento que es diferente a la altura de desplazamiento del documento, puede usar element.getBoundingClientRect().height(Docs).

Cuestiones relacionadas