Как отключить пассивный прослушиватель событий для прокрутки колесика мыши

#javascript

#javascript

Вопрос:

Я создал сайт, который изменит отображение изображений при прокрутке мыши. Он работал до сегодняшнего утра на моем локальном компьютере, но внезапно остановился. Когда я проверяю консоль разработчика, я получаю сообщение об ошибке, в котором говорится «[Вмешательство] Невозможно предотвратить Default внутри пассивного прослушивателя событий из-за того, что цель обрабатывается как пассивная. Смотрите https://www.chromestatus.com/features/6662647093133312«

Я прочитал информацию по предоставленному URL и все еще не понимаю, как я могу отключить эту функцию. В моем коде у меня есть следующее:

 var changeImage = function changeImage(event) {
    event.preventDefault();
    if (brochure.waitForDelay === false) {
        window.onwheel = function () {
            return false;
        };
        brochure.waitForDelay = true;
        if (event.deltaY < 0) {
            scrollUp();
        } else {
            scrollDown();
        }
        setTimeout(function () {
            brochure.waitForDelay = false;
            window.onwheel = function () {
                return true;
            };
        }, 1250);
    } else {
        return;
    }
};
var determineScrollDirection = function determineScrollDirection() {
    document.addEventListener('wheel', changeImage, { passive: false });
};
  

В determineScrollDirection я установил passive как false и попытался вызвать preventDefault в функции changeImage, но я все еще получаю то же сообщение об ошибке.

Ответ №1:

Я смог исправить эту проблему, удалив следующую строку:

  window.onwheel = function () {
        return false;
    };