0

我目前有一个网站,当用户点击页面上的某个点时,它会自动滚动到某个部分。为此,我必须在自动滚动发生时禁用用户的滚动,以防止他们破坏自动滚动。更新到 Safari 9 后,我不能再禁用用户的滚动,直到他们停止手动滚动。所以他们目前可以滚动超过自动滚动锚点,并且我的 disableScroll 函数在他们停止滚动之前不会生效。如何在用户处于中间滚动时禁用用户的滚动?这是我用来禁用滚动的代码。同样,这在 Safari 9 之前运行良好。我应该改用最近在 Safari 9 中实现的新滚动捕捉吗?

disableScrolling = function() {
    window.onwheel = preventDefault; // modern standard
    window.onscroll = preventDefault;
    window.onmousewheel = document.onmousewheel = preventDefault; 
}


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

0 回答 0