Sto provando a rilevare quando un utente ha terminato lo scorrimento di una pagina Web utilizzando javascript su Android. La sceneggiatura che ho sta lavorando su iPhone e mi sembra corretto che dovrebbe funzionare su Android. In ogni caso, un frammento:Rileva se sta scorrendo una pagina Web su Android
previous = pageYOffset;
interval = setInterval(function() {
//Has scrolling stopped?
if(previous == pageYOffset) {
clearInterval(interval);
//DO SOMETHING AFTER SCROLL COMPLETE
} else {
previous = pageYOffset;
}
}, 200);
L'idea di base, il polling il pageYOffset ogni 200ms, se non ci fosse stato alcun cambiamento, allora non c'è scorrimento accadendo. Altrimenti, continua a cercare.
Come ho detto, questo funziona su iPhone, quindi presumo che sia qualcosa che ha a che fare con Android, forse non aggiornando la pagina YOffset durante una scroll?
Qualsiasi aiuto è molto apprezzato!
Nota: ho scelto questa route perché non riuscivo a trovare una proprietà isScrolling o scrollStop. Se ho trascurato uno, per favore mi dica :)
Grazie
aggiornamento: solo cercato di utilizzare il 'scorrere' evento per rilevare questo. Risultati misti qui. Sull'emulatore Android era funzionante quasi correttamente, ma era molto intermittente su un telefono reale (2.1 Sense Hero GSM), cioè solo 1 su 10 rotoli sono stati rilevati.
Anche quando è stato 'lavorando' sul emulatore non è stato generare l'evento di scorrimento quando si scorre 'up' quando si sono in cima alla pagina (cioè spingere verso l'alto per vedere la barra degli indirizzi). Questo è un problema dato che la pagina è stata effettivamente spostata (posizione modificata) ma I non riceve l'evento.
nota, l'iPhone sembra al fuoco e rilevare l'evento in modo corretto (almeno nell'emulatore, non ha accesso a dispositivi al momento).
Qualche idea ragazzi?
Update 2: Il nuovo 'scorrere' evento sembra al lavoro (nella stessa misura come il emulatore (1.6 e 2.1)) su alcuni dispositivi Android. Continuerà a investigare per cercare di restringere questo verso il basso.
ancora il problema di 'scorrere' non essere sparato quando si scorre fino al bar indirizzo. Potrebbe essere necessario un po 'di tipo di soluzione ibrida di' scroll ' rilevamento eventi e polling movimento dopo un tocco.
Accettando questo come tendo ad essere d'accordo. –