Javascript-DOMMouseScroll在Google Chrome上不起作用

问题描述 投票:0回答:1

[尝试通过JavaScript启用和禁用页面滚动。但是似乎下面的方法在谷歌浏览器上不起作用,但是在Safari和FireFox上工作得很好-

let keys = [32, 33, 34, 35, 36, 37, 38, 39, 40];

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

function keydown(e) {
    for (var i = keys.length; i--;) {
        if (e.keyCode === keys[i]) {
            preventDefault(e);
            return;
        }
    }
}

function wheel(e) {
    preventDefault(e);
}

export function disableJSScroll() {
    if (window.addEventListener) {
        window.addEventListener('DOMMouseScroll', wheel, false);
        window.addEventListener('mousewheel', wheel, false);
    }
    window.onmousewheel = document.onmousewheel = wheel;
    document.onkeydown = keydown;
}

export function enableJSScroll() {
    if (window.removeEventListener) {
        window.removeEventListener('DOMMouseScroll', wheel, false);
        window.removeEventListener('mousewheel', wheel, false);
    }
    window.onmousewheel = document.onmousewheel = document.onkeydown = null;
}

任何帮助将不胜感激!

javascript
1个回答
0
投票
根据MDN文档,

DOMMouseScroll是非标准且不推荐使用的事件。请改用wheel事件。

© www.soinside.com 2019 - 2024. All rights reserved.