2017-03-21 7 views
0

ページのスクロールを無効にする方法を教えてください。オーバーフローを使わないでスクロールを無効にする方法:非表示と位置:固定?

var keys = { 37: 1, 38: 1, 39: 1, 40: 1 }; 

function preventDefault(e) { 
    e = e || window.event; 
    if (e.preventDefault) e.preventDefault(); 
    e.returnValue = false; 
} 

function preventDefaultForScrollKeys(e) { 
    if (keys[e.keyCode]) { 
     preventDefault(e); 
     return false; 
    } 
} 

function disableScroll() { 
    if (window.addEventListener) // older FF 
     window.addEventListener('DOMMouseScroll', preventDefault, false); 
    window.onwheel = preventDefault; // modern standard 
    window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE 
    window.ontouchmove = preventDefault; // mobile 
    document.onkeydown = preventDefaultForScrollKeys; 
} 

function enableScroll() { 
    if (window.removeEventListener) window.removeEventListener('DOMMouseScroll', preventDefault, false); 
    window.onmousewheel = document.onmousewheel = null; 
    window.onwheel = null; 
    window.ontouchmove = null; 
    document.onkeydown = null; 
} 

が、それは私に適切な出力を与えていません。今私は、同様のコードを与えられた使用

overflow:hidden 

または

position:fixed 

を使用しています。上記のコードを使用すると私のページが変動します...私はライブラリを使用したくありません。 hidden`:

+2

をしようか? – Arg0n

+0

ページには既にスクロールが含まれています。任意のdivのOnclickはスクロールを隠さなければならない。それはページを変動させる。 – Prerna

+3

問題を示すコードを作成してください。オーバーフロー:あなたが必要とするすべてが隠されているはずです。 スクロールバーを非表示にして表示すると、ページの流れが違ってきているのを確認したいのですが、問題があると思います。 – megamit

答えて

0

は `オーバーフローと間違って何

window.onscroll = function() { window.scrollTo(0, 0); }; 
+0

いいえ、最初にスクロールする必要があります。 – Prerna

関連する問題