Wenn ich bis zum Ende des untergeordneten Elements div
scrolle, beginnt das Element body
mit dem Scrollen.
Wie kann ich das verhindern? Ich möchte nur das body
scrollen, wenn der Cursor darüber steht.
Beispiel: JsFiddle
Benutze dieses Plugin Ссылка
Das Problem, das Mausrad innerhalb eines gegebenen Containers zu blockieren, wird vollständig gelöst, sodass es nicht mehr zum übergeordneten Element wird.
Es ändert sich nicht die Laufgeschwindigkeit, die Benutzererfahrung wird nicht beeinflusst. und Sie erhalten das gleiche Verhalten unabhängig von der vertikalen Scrollgeschwindigkeit des Betriebssystems Mausrad (unter Windows kann es auf einen Bildschirm oder eine Zeile bis zu 100 Zeilen pro Kerbe eingestellt werden).
Demo: Ссылка
Quelle: Ссылка
Wenn Sie Ihre Elemente nicht in andere Scroll-Elemente verschachteln (in den meisten Fällen), können Sie diesen einfachen High-Performance-Ansatz verwenden:
%Vor% Wenn Sie nun self-scroll
class auf ein beliebiges Element anwenden, scrollt es nicht.
Akzeptierte Antwort scheint veraltet. Das Ereignis "mousewheel" ist eine nicht standardmäßige Funktion. Das " Rad " Event scheint jetzt der Standard zu sein. Auch WheelDelta ist in den meisten Browsern nicht definiert. Wechsel zu -event.deltaJ scheint den Trick zu machen. Funktioniert in IE 10, Chrome und Firefox
%Vor%Verwenden Sie dies
%Vor%});
wird das Blättern im übergeordneten Fenster sperren. Arbeitete für mich