UPDATE poprawkę Pracując jako sugerowane przez Dawida (patrz poniżej):firefox + jquery mouseWheel przewijania bug wydarzenie
zastąpić
$('.scrollMe').bind("mousewheel DOMMouseScroll", ...)
z
$('.scrollMe').bind("mousewheel DOMMouseScroll MozMousePixelScroll", ...)
oryginalny post
Firefox 16.0.2 (najnowszy) pokazuje problem podczas wiązania zdarzenia "mousewheel/DOMMouseScroll". Przewijanie za pomocą kółka myszy, gdy wskaźnik myszy znajduje się na górze wybranego elementu div, powoduje również przewijanie okna, podczas gdy ja oczywiście tego nie chcę.
Próbowałem dodać kilka metod, aby zatrzymać propagację itp., Ale nic nie działa.
kod JavaScript:
$(document).ready(function() {
$('.scrollMe').bind("mousewheel DOMMouseScroll", function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
var delta = parseInt(e.originalEvent.wheelDelta || -e.originalEvent.detail);
$(this).empty();
return false;
});
});
Aby zobaczyć go w akcji, prosimy skorzystać z linku jsFiddle poniżej. Na przykładowej stronie po prostu umieść wskaźnik myszy w dziale za pomocą czerwonych pól i użyj kółka myszy. Firefox przewija okno nadrzędne po raz pierwszy (nieoczekiwanie), podczas gdy inne przeglądarki tego nie robią.
Osobliwe jest to, że Firefox nie powtórzyć zachowanie po ogień zdarzenia na elemencie związanym, co oznacza, że przestanie się przesuwać stronę. Powtarza to jednak po ręcznym przewinięciu strony i ponowieniu.
Testowałem to również w IE9 i Chrome, ale nie mogłem wykryć tego problemu w tych przeglądarkach (co oznacza, że nie przewijają one okna niespodziewanie), więc domyślam się, że jest to specyficzne dla przeglądarki Firefox (wyłącza również każdą wtyczkę w firefoxie itp.)
Czy to naprawdę błąd w Firefoksie (a jeśli tak, to czy istnieje hack, który może zrobić lewę)? Lub, jeśli znasz jakieś inne rozwiązanie, aby uzyskać taki sam efekt, jak łapanie zdarzenia kółka myszy bez przewijania okna strony, odpowiedz na to!
podpowiedź: użycie event.originalEvent.deltaY dla kierunku w FF zamiast event.originalEvent.wheelDelta – CoffeJunky
Zapisane mój dzień! Kciuki w górę! –