javascript - 完全禁用网页滚动

标签 javascript html css

<分区>

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

overflow: hidden

将不起作用。

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

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

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

最佳答案

假设简化的 HTML 代码是:

<html><body><div class=wrap>content...</div></body></html>

将body、html都设置为height:100%;

body, html {height:100%;}

将一个 div 放入 body 中,并将其设置为横跨整个 body 高度:

div.wrap {height:100%; overflow:hidden;}

这将防止窗口以奇怪的方式滚动,例如,按下鼠标滚轮并移动它,使用 anchor 等。

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

body {overflow: hidden; }

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

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);

关于javascript - 完全禁用网页滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637031/

相关文章:

javascript - 在 JavaScript 中连接字符串

javascript - 在 Javascript 中设置 DIV 标签样式时添加了一个中断

javascript - CSS3/HTML5 响应图像

css - 我如何更改 react-native-element 搜索栏的外观

javascript - Angular url 中的 $locationProvider

javascript - 如何检查 x 是否是对象而不是字符串对象

html - 如何包含 Font Awesome 图标以及如何在 html 中绑定(bind)

html - 如何检测 YouTube 何时无法加载?

jQuery 检查 CSS 类的高度是否小于 20%

html - 非语义网格。为什么最后一个 div 被移到了其他 div 的下面?