Come disabilitare le barre di scorrimento con JavaScript?
-
05-07-2019 - |
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
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 : {}
}