Próbuję wykryć, kiedy użytkownik zakończył przewijanie strony internetowej przy użyciu javascript na Androida. Skrypt, który mam działa na iPhone'a i wydaje mi się poprawny, że powinien działać na Androidzie. W każdym razie, to fragment:Wykrywanie, czy obecnie przewijanie strony internetowej w systemie Android
previous = pageYOffset;
interval = setInterval(function() {
//Has scrolling stopped?
if(previous == pageYOffset) {
clearInterval(interval);
//DO SOMETHING AFTER SCROLL COMPLETE
} else {
previous = pageYOffset;
}
}, 200);
Podstawową ideą, sondowania pageYOffset co 200ms, czy nie doszło do zmiany, to nie ma przewijanie dzieje. W przeciwnym razie szukaj dalej.
Jak już powiedziałem, działa to na iPhonie, więc zakładam, że jest to coś wspólnego z Androidem, który prawdopodobnie nie aktualizuje pageYOffset podczas przewijania?
Każda pomoc jest bardzo doceniana!
Uwaga: wybrałem tę trasę, ponieważ nie mogłem znaleźć zdarzenia typu isScrolling lub typu scrollStop. Gdybym przeoczyli jeden, proszę mów mi :)
Dzięki
UPDATE: Właśnie próbował użyć 'przewijać' zdarzenie to wykryć. Wyniki mieszane tutaj. Na emulatorze Androida działało prawie poprawnie, ale było bardzo niestabilne w stosunku do rzeczywistego telefonu (2.1 Sense Hero GSM), tzn. Wykryto tylko 1 na 10 zwojów.
Nawet gdy było „pracy” na emulatorze nie strzelał zdarzenie przewijania podczas przewijania „w górę”, kiedy są na górze strony (tj push up, aby zobaczyć pasek adresu). Ten jest problemem, ponieważ strona została przewinięta (zmieniona pozycja), ale I nie odbieram zdarzenia.
Uwaga, iPhone wydaje się ognia i wykryć zdarzenie poprawnie (przynajmniej w emulatorze, nie ma dostępu do urządzenia w tej chwili).
Jakieś pomysły?
Aktualizacja 2: Nowy 'przewijać' zdarzenie wydaje do pracy (w takim samym stopniu jak emulator (1.6 i 2.1)) Na niektórych urządzeń z systemem Android. W dalszym ciągu będziemy badać , próbując zawęzić to .
Nadal problem "przewijania" nie jest wystrzeliwany po przewinięciu paska adresu do . Może zaistnieć potrzeba pewnego rodzaju hybrydowego rozwiązania "przewijania" wykrywania zdarzeń i przepytywania ruchu po dotknięciu.
Przyjmę to, ponieważ zgadzam się. –