Jak przechwytywać wszystkie przewijane zdarzenia na stronie bez dołączania programu obsługi przechodzenia do każdego pojedynczego kontenera

Rozważ następującą stronę internetową:

 <html>
   <body onscroll="alert('body scroll event')">
     <div style='width:200px;height:200px;overflow:auto' onscroll="alert('div scroll event')">
       <div style='height:400px'>
       </div>
     </div>
   </body>
 </html>

Ten html tworzy div z paskiem przewijania. Jeśli przesuniesz pasek przewijania, zostanie wyzwolone zdarzenie „onscroll” na elemencie div. Jednak zdarzenie „onscroll” na ciele NIE jest uruchamiane. Jest to oczekiwane, ponieważ W3C stwierdza, że ​​zdarzenia onscroll elementu nie „bańkują”.

Jednak opracowuję framework WWW po stronie klienta, który musi wiedzieć za każdym razem, gdy przewija się pasek przewijania na DOWOLNYM elemencie strony. Byłoby to łatwe do zrobienia, gdyby „onscroll” bulgotał, ale niestety tak nie jest. Czy istnieje inny sposób wykrywania zdarzeń przewijania na całej stronie? (W tej chwili skupiam się głównie na Webkit, więc rozwiązanie specyficzne dla Webkita byłoby w porządku ...)

Oto kilka rzeczy, które próbowałem: 1. Przechwytywanie DOMAttrModified (zdaje się nie strzelać do ruchomych pasków przewijania). bańka (wydaje się nie być możliwa)

Wydaje się, że JEDYNY sposób przechwytywania zdarzeń onscroll na całym świecie polega na dołączeniu zdarzenia onscroll do KAŻDEGO elementu, który może się przewijać, co jest bardzo brzydkie i zaszkodzi wydajności mojego środowiska.

Czy ktoś zna lepszy sposób?

Z góry dziękuję!

questionAnswers(4)

yourAnswerToTheQuestion