Domanda

Devo bloccare le barre di scorrimento del browser quando visualizzo un div che rappresenta una finestra modale solo in Internet Explorer 7. Google Ho scoperto che posso usare document.body.style.overflow = 'hidden' ma questo non funziona per IE7. Ho anche provato con document.body.scroll = " no " che funziona ma solo dopo aver passato il mouse sulla barra di scorrimento: -S

Qualcuno conosce un approccio migliore?

Thansks

È stato utile?

Soluzione

Per rispondere alle tue varie domande (incluso quello nell'altro tuo commento), penso che tu stia utilizzando il metodo di posizionamento errato.

Prova position: fixed . Fondamentalmente è uguale alla posizione : absolute a parte il relativo rispetto al viewport assoluto. Vale a dire: se l'utente scorre, l'elemento rimane nella stessa posizione sullo schermo.

Quindi, con questo in mente, puoi disporre una sovrapposizione position: fixed . All'interno di ciò puoi avere la tua posizione : absolute (o riparata , se preferisci - non dovrebbe fare la differenza) casella modale .

Altri suggerimenti

Imposta il tuo div overlay modale per riempire il corpo, quindi anche se scorrono non c'è niente che possano fare perché tutto è nascosto sotto di esso.

puoi anche nascondere le barre di scorrimento usando overflow: hidden in modo che l'utente non veda le barre di scorrimento in modo da non essere tentato di andare in giro :)

Questo può aiutarti:

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 : {}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top