Почему мой код не отключает событие mousewheel? - PullRequest
0 голосов
/ 07 апреля 2019

Когда я прокручиваю Chrome, я получаю сообщение об ошибке на своем веб-сайте.

jquery-3.3.1.min.js: 2 [Вмешательство] Не удается предотвратить дефолт внутри прослушивателя пассивных событий из-за того, что цель рассматривается как пассивная. Смотри https://www.chromestatus.com/features/6662647093133312

Чтобы предотвратить это:

 $(document).ready(function () {

    $(window).on("mousewheel", function(e){
    if(e.originalEvent.deltaY > 0) {
        e.preventDefault();
        return;
    } else if (e.originalEvent.wheelDeltaY < 0) {
        e.preventDefault();
        return;
    }    

});
 });

использовал это в макете / главной странице.

Но это не имеет никакого эффекта, и ошибка не исчезает.

1 Ответ

4 голосов
/ 07 апреля 2019

Вы должны установить параметр "пассивный" в опциях на "ложь"

MDN addEventListener

passive: логическое значение, которое, если true, указываетчто функция, указанная слушателем, никогда не будет вызывать protectDefault ().Если пассивный прослушиватель вызывает функцию protectDefault (), пользовательский агент не будет ничего делать, кроме как создать предупреждение консоли.См. Улучшение прокрутки с пассивными слушателями, чтобы узнать больше.

window.addEventListener('mousewheel', function(e) {
    e.preventDefault();
}, { passive: false });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...