Sto provando a creare una pagina per dispositivi mobili che rileva la posizione scrollTop
e scorre nella parte superiore della pagina se scrollTop
è inferiore alla metà dell'altezza del documento o scorri verso il basso se non lo è.Touchend non sparato dopo touchmode
ho realizzato che utilizzando questo:
var ScrollTimeout;
$(window).on('scroll',function(){
clearTimeout(ScrollTimeout);
ScrollTimeout = setTimeout(scrollToTopOrBottom,200);
});
Il problema è che i fuochi di timeout quando l'utente ha smesso di scorrere, ma ha ancora il dito sullo schermo.
Quindi ho lavorato con l'evento touchend
ed è stato fantastico.
$(document).on('touchend',function(){
scrollToTop();
});
L'utente potrebbe fermato scorrimento (con il dito ancora sullo schermo) e poi continuare a scorrere senza attivare la funzione scrollToTopOrBottom()
.
Il problema è, tale evento viene incosistent tra i browser:
In alcuni browser (Maxthon e Android), l'evento touchend
funzionato come previsto, ma in Opera Mobile e Chrome, l'evento touchend
non lo fa incendi. La spiegazione per questo è che touchend
doesn't fires because touchcancel
has been fired before.
Ho provato questo
$(document).on('touchmove',function(e){
e.preventDefault();
});
e con successo evitato l'attivazione di touchcancel
, ma purtroppo anche evitato il comportamento naturale di scorrimento.
Qualcuno sa come può essere raggiunto? Sono completamente fuori di idee.
Grazie.
Questo ha funzionato per me. –
ha funzionato perfettamente! Grazie – Logic1
provato tutto per ottenere i touchends per funzionare correttamente su Android 4.4, questa è stata l'unica cosa che ha aiutato! Grazie! – mls3590712