Chcę wyłączyć kółko myszy w jQuery i zrobiłem to, ale pojawia się ten błąd

jquery.min.js:2 [Interwencja] Nie można zapobiecDefault wewnątrz pasywnego detektora zdarzeń, ponieważ cel jest traktowany jako pasywny. Zobacz https://www.chromestatus.com/features/6662647093133312

Oto kod w pliku JS:

$(document).ready(() => {
  $(window).bind("mousewheel", function() {
    return false;
  });
})
1
Agata 5 styczeń 2022, 13:23
Czy możesz wyjaśnić, jaki jest cel? Czy użytkownik w ogóle nie powinien przewijać strony?
 – 
Chris G
5 styczeń 2022, 13:29

1 odpowiedź

Najlepsza odpowiedź

Problem polega na tym, że nie możesz wywołać preventDefault() w przypadku zdarzeń pasywnych, takich jak mousewheel – między innymi.

Aby rozwiązać ten problem, możesz ustawić passive: false podczas wiązania obsługi zdarzeń:

window.addEventListener('wheel', e => e.preventDefault(), {
  passive: false
});
/* just to make the scrollbar appear in this demo */
body { height: 5000px; }

Jednak zdecydowanie radzę nie robić tego. Uniemożliwienie użytkownikom poruszania się po Twojej witrynie za pomocą bardzo popularnego kółka przewijania myszy będzie dla Ciebie niezwykle denerwujące – i może sprawić, że będą myśleć, że Twoja witryna działa nieprawidłowo.

5
Rory McCrossan 5 styczeń 2022, 13:29
Dziękuję bardzo, że pierwszy fragment działa, dziękuję
 – 
Agata
5 styczeń 2022, 13:31
JQuery nie zaimplementował jeszcze argumentu options?
 – 
Teemu
5 styczeń 2022, 13:31
Przyjmę odpowiedź po 6 minutach
 – 
Agata
5 styczeń 2022, 13:31
1
Nie żebym mógł zobaczyć, nie.
 – 
Rory McCrossan
5 styczeń 2022, 13:33
1
Może Rory edytuje swoją odpowiedź, aby to też uwzględnić ...?
 – 
Teemu
5 styczeń 2022, 14:19