EDIT: Ho caricato un video su YouTube che dimostra il bug qui: http://www.youtube.com/watch?v=zkDYlgtX5HkBrowser Android/Bug di scorrimento Samsung Galaxy SII su moduli Web. Selezionare Elenco hitboxes non scorrono
Ho un davvero strano bug che ho trovato testare la mia nuova applicazione Web su un Samsung Galaxy S2 con Android 4.03 ICS.
Quello che succede è che quando si carica un modulo nel browser Web predefinito, e poi si scorre lungo la pagina, l'area hitbox/touchable sembra rimanere dov'era sullo schermo quando la pagina è stata caricata per la prima volta, anche se l'elemento modulo stesso ha fatto scorrere lo schermo.
Per quanto posso dire con i pochi dispositivi di test che ho a disposizione, penso che ciò avvenga solo sul Samsung Galaxy S2 come ho provato nel simulatore Android con la stessa versione di Android e non è stato in grado di replicare il problema. So che questo lo rende una base di utenti molto specifica che ha il probem, ma l'ultima volta che ho controllato il Galaxy s2 era il telefono Android più popolare nel mio paese (Australia), quindi sarebbe bello trovare una soluzione.
ho creato una pagina molto semplice per dimostrare questo a http://users.tpg.com.au/geoffica/test.html
È possibile replicare il problema nel modo seguente:
- Caricare la pagina su un Galaxy S2
- Scorrere il browser in modo quella pagina riempie completamente lo schermo e la barra degli indirizzi è appena nella parte superiore dello schermo.
- Dove si trova la casella di selezione, posizionare il dito sul lato dello schermo come indicatore di dove si trovava l'elenco di selezione.
- Scorre la pagina verso il basso a qualsiasi distanza, (mantenendo comunque l'elenco di selezione sullo schermo), quindi tocca lo spazio in cui si trovava la lista di selezione e le opzioni dovrebbero apparire sullo schermo. Potrebbero essere necessari alcuni tentativi per ottenerlo, ma accadrà.
Ora so che stai pensando questo è abbastanza difficile da replicare e probabilmente raro che accadrà, ma su una forma ho costruito per un cliente a causa di dove sono stati posizionati gli elementi, il hitbox sempre sovrapposto il pulsante di invio del modulo, rendendo molto difficile premere il pulsante di invio. Gli elenchi di selezione rubano anche i tocchi di altri elenchi di selezione se le hitbox si sovrappongono, facendo apparire le opzioni sbagliate quando vengono toccate.
Ho provato molte cose, ma l'unica soluzione che ho trovato finora è utilizzare l'evento touchstart per attivare il pulsante di invio anziché l'evento click. Questo sembra accadere prima dell'evento click degli elenchi di selezione e impedisce che entri per primo, ma questo è lontano dall'ideale e non impedisce agli elenchi di selezione di rubare i clic dagli altri elementi sulla pagina.
Ho anche pensato di far ruotare il mio plugin jquery per posizionare gli elenchi di selezione sullo schermo e quindi attivare i loro eventi di clic toccando un collegamento o qualcosa del genere. Se si tratta di un dispositivo mobile, le opzioni appariranno sullo schermo indipendentemente dalla posizione della selezione. Ciò sarebbe piuttosto complicato e dovrei considerare l'effetto che ciò avrebbe sugli utenti provenienti da un pc o da un ipad che mostra invece le opzioni in un elenco a discesa. Sembra abbastanza prolifico per me. Potrebbe persino richiedere lo specifico snifing per browser/dispositivo Galaxy S2.
Qualcuno ha una soluzione reale per questo, oltre a non utilizzare solo elenchi selezionati?
Hai trovato una soluzione per questo? Anch'io ho lo stesso problema. –
No, non ho mai trovato una soluzione. Sul sito a cui stavo lavorando accadde molto frequentemente sul pulsante di invio di una pagina di ricerca (a causa del posizionamento di quegli elementi sulla pagina) che era davvero frustrante da usare. Ho risolto il problema attivando l'azione di invio con "touchstart" invece di "fare clic" per quel pulsante (come menzionato sopra) ma non ho potuto correggere i vari altri luoghi che possono accadere sul sito. Sembra essere sicuramente un bug di browser/os. Posso solo sperare che gli utenti installino Chrome invece del browser predefinito. – pantryfight