完全禁用网页滚动

Kar*_*ger 14 html javascript css

我想禁用我的网页滚动,但完全不是禁用滚动条

overflow: hidden
Run Code Online (Sandbox Code Playgroud)

不管用.

由于边缘上的"软滚动",此解决方法也不适用于Mac.它将显示一个可怕的摇晃动画:

window.onscroll = function () {
window.scrollTo(0,0);
}
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以完全禁用滚动?

Syc*_*ych 41

假设简化的HTML代码是:

<html><body><div class=wrap>content...</div></body></html>
Run Code Online (Sandbox Code Playgroud)

将body,html设置为height:100%;

body, html {height:100%;}
Run Code Online (Sandbox Code Playgroud)

在体内放置一个div,并将其设置为在所有身高上伸展:

div.wrap {height:100%; overflow:hidden;}
Run Code Online (Sandbox Code Playgroud)

这将阻止窗口以奇怪的方式滚动,例如,按下鼠标滚轮并移动它,使用锚点等.

要删除滚动条本身(可视),您还应添加:

body {overflow: hidden; }
Run Code Online (Sandbox Code Playgroud)

要通过按键盘上的箭头键禁用滚动:

window.addEventListener("keydown", function(e) {
    // space, page up, page down and arrow keys:
    if([32, 33, 34, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
        e.preventDefault();
    }
}, false);
Run Code Online (Sandbox Code Playgroud)