2012-07-04 8 views

Respuesta

15

Ésta es la única CSS que se define para forzar las barras de desplazamiento:

html{ 
    overflow-y: scroll; 
} 

Las barras de desplazamiento se desactivará si el contenido es más pequeña que la ventana, por lo que tendrá que utilizar una secuencia de comandos para cambiar el tamaño del cuerpo siendo al menos 1px inferior a la altura de la ventana: [? Sólo deshabilitar desplazamiento lo oculta]

$("body").css({ "height" : ($(window).height() - 1) + 'px', "overflow": "hidden" }); 
+0

Esto hace el trabajo realmente bien. Sin embargo, en lugar de usar JS para definir la altura del cuerpo, me parece más limpio ir con css. Con poco juego, encontré dos opciones: Aplicar posición: fijo; a la etiqueta html, junto con overflow-y: scroll; O, si está utilizando un marco que ya agrega desbordamiento: oculto, a su etiqueta corporal (supongo que la mayoría de las personas que buscaron este problema, porque overflow: oculto; en el cuerpo), podría definir la altura del cuerpo con 100vh . No olvides eliminar esos estilos cuando el modal está cerrado. – mizurnix

+0

Buena captura. Debes agregar tu propia respuesta, para poder votarla mejor. – rcdmk

+0

Gracias pero todavía no he terminado con mi solución :) Estoy intentando aplicar esto a una página muy larga, por lo que la mayoría de las veces los usuarios se desplazarán primero y luego abrirán modal y todas mis opciones harán que la barra de desplazamiento permanezca activa o que se desplace el usuario arriba y luego desactiva la barra de desplazamiento. Comprobé qué hace Facebook y usan la posición fija más la adición de la parte superior: píxeles xxxxx (en función de lo lejos que ya se haya desplazado) en el contenedor de contenido (no es el cuerpo en su caso). Cuando termine, puedo agregar eso como respuesta – mizurnix

-4
overflow-y: scroll; 

Eso debe ser lo que estás buscando.

+0

no ** deshabilitará ** la barra de desplazamiento –

+0

que solo muestra la barra de desplazamiento siempre, pero no deshabilita el desplazamiento, ¿o sí? –

+0

Oh, pensé que solo querías dejar la barra de desplazamiento allí incluso si no había suficiente contenido en la página. ¿Cómo desea desplazarse si el contenido es más grande que la pantalla del navegador? – Chad

Cuestiones relacionadas