Pergunta

Eu preciso bloquear as barras de rolagem do navegador quando eu mostrar um div que representam uma janela modal em apenas Internet Explorer 7. Pesquisando descobri que posso usar document.body.style.overflow='hidden' mas isso não funciona para o IE7. Eu também tentei com document.body.scroll="no" que funciona, mas somente depois que eu mouse sobre a barra de rolagem: -S

Alguém conhece um aproach melhor?

Thansks

Foi útil?

Solução

Para responder às suas várias perguntas (incluindo que no seu outro comentário), eu acho que você está usando o método de posicionamento errado.

position:fixed tentativa. É basicamente o mesmo que position:absolute além do que é relativo para a janela absoluta. Isto é:. Se o usuário rola, as estadias item no mesmo lugar na tela

Assim, com isso em mente, você pode colocar para fora uma sobreposição position:fixed. Dentro de que você pode ter o seu position:absolute (ou fixed novamente, se você preferir - é não deve fazer a diferença). Caixa modal

Outras dicas

Defina o seu modal sobreposição div para preencher o corpo, por isso mesmo que eles rolagem não há nada que eles podem fazer, porque tudo é escondido debaixo dela.

Você também pode ocultar as barras de rolagem usando overflow:hidden para que o usuário não verá os scollbars por isso não vai ficar tentado a Enrole em torno de:)

Isto pode ajudá-lo:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top