我得到:[干预]由于目标被视为被动,因此无法在被动事件侦听器中阻止Default

时间:2019-05-26 11:48:22

标签: jquery

除了用鼠标滚轮滚动时控制台中的错误外,我发现一些代码在我的项目中效果很好。

我得到了[干预]由于目标被视为被动,因此无法阻止被动事件侦听器中的Default。

我尝试了各种搜索以尝试解决此问题,原因是我缺乏经验。我想我需要添加“ passive:false;”某个地方,但是去哪里了?

if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;

function wheel(event) {
    var delta = 0;
    if (event.wheelDelta) delta = event.wheelDelta / 120;
    else if (event.detail) delta = -event.detail / 3;
    handle(delta);
    if (event.preventDefault) event.preventDefault();
    event.returnValue = false;
}

function handle(delta) {
    var time = 1000;
var distance = 300;
    $('html, body').stop().animate({
        scrollTop: $(window).scrollTop() - (distance * delta)
    }, time );
}

使用Chrome浏览器滚动时,控制台将显示有关鼠标滚轮每次移动的错误消息。除了错误消息,该代码确实可以按预期工作。我不知道这是否只是因为使用chrome进行仿真还是确实存在问题。代码可在我尝试过的所有设备上使用。

0 个答案:

没有答案