Pregunta

Necesito bloquear las barras de desplazamiento del navegador cuando muestro un div que representa una ventana modal solo en Internet Explorer 7. En Google encontré que puedo usar document.body.style.overflow = 'hidden' pero esto no funciona para IE7. También probé con document.body.scroll = " no " que funciona pero solo después de pasar el mouse sobre la barra de desplazamiento: -S

¿Alguien sabe un mejor enfoque?

Thansks

¿Fue útil?

Solución

Para responder a sus diversas preguntas (incluida la de su otro comentario), creo que está utilizando el método de posicionamiento incorrecto.

Prueba la posición : corregida . Básicamente, es lo mismo que la posición : absolute , aparte de su posición relativa a la vista absoluta. Es decir: si el usuario se desplaza, el elemento permanece en el mismo lugar en la pantalla.

Así que con esto en mente, puede diseñar una superposición de position: corregir . Dentro de eso, puede tener su posición : absolute (o arreglado de nuevo, si lo prefiere - no debería hacer una diferencia) cuadro de modales .

Otros consejos

Configura tu división de superposición modal para que llene el cuerpo, así que incluso si se desplazan, no hay nada que puedan hacer porque todo está oculto debajo.

también puede ocultar las barras de desplazamiento utilizando overflow: hidden para que el usuario no vea las barras de desplazamiento, por lo que no tendrá la tentación de andar por ahí :)

Esto puede ayudarte:

documentOBJ = {
    /*Width and Height of the avaible viewport, what you'r seeing*/
    window : {
        x : function(){return (document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth; },
        y : function(){return (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight;}
    },

    /*Scroll offset*/ 
    scroll : {
        x : function(){return ( document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft; },
        y : function(){return ( document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop; }
    },

    /*Height and width of the total of the xhtml in a page*/
    page : {
        x : function(){return (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth; },
        y : function(){return (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight; }
    },
    pointer : {}
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top