2010-05-26 15 views

Respuesta

7

De esta manera:

if (document.documentElement.scrollHeight === document.documentElement.clientHeight) { 
    //There is no vertical scrollbar 
} 

Esto no funciona en IE

+0

La barra de desplazamiento puede estar explícitamente oculta a través de 'body {overflow-y: hidden; } ', en cuyo caso su código informaría un falso positivo ... –

+0

Esto tampoco funciona cuando el cuerpo es pequeño, pero un elemento completamente posicionado se ha movido parcialmente más allá de la ventana gráfica y ha causado que el UA muestre barras de desplazamiento (el alto/ancho del cuerpo no cambia en esa instancia, pero definitivamente hay barras de desplazamiento presentes). –

1

Compare la altura del documento con la altura de la ventana. Si es más, probablemente haya una barra de desplazamiento a menos que la haya deshabilitado.

+0

Wrong. La altura de la ventana incluye elementos de cromo, como barras de herramientas y menús. – SLaks

+0

Ah sí, realmente quise escribir la altura de la ventana gráfica, mi culpa. – CharlesLeaf

4

Ésta es una entrada antigua, pero finalmente me dieron el código que también funciona en IE7. Espero que esto pueda ayudar a alguién.

var hasScrollbar = $('body').outerHeight() > $(window).height(); 
+0

Esto no funciona para elementos posicionados absolutamente que están más allá de la ventana gráfica (causando barras de desplazamiento) cuando el cuerpo es pequeño. –

Cuestiones relacionadas