javascript - 如何在不使用溢出 :hidden & position:fixed? 的情况下禁用滚动

标签 javascript jquery html css

给我禁用页面滚动的解决方案。现在我正在使用

overflow:hidden

position:fixed

我也使用给定的代码:

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

但它没有给我正确的输出。当我使用上面的代码时,我的页面会出现波动...我不想使用任何库。

最佳答案

尝试去做

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

关于javascript - 如何在不使用溢出 :hidden & position:fixed? 的情况下禁用滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42929545/

相关文章:

javascript - 日期变量函数以 dd/mm/yyyy 格式包含在未来 x 天之前的 Selenium IDE 中

php - 截断其中包含 HTML 标记的字符串

javascript - ASP.Net AJAX - 有编写 WebControl 的端到端示例吗?

javascript - 如何从更新中修改对象并删除旧 key ?

javascript - 将鼠标悬停在任一选择器上即可显示 div

php - Mysql结果显示在php循环中

html - IE8边框使用伪:after

javascript - Jquery 对话框不会在表单元素中保持打开状态

javascript - 使用 jQuery $.post 返回的数组

Javascript 元素折叠不起作用