Ho alcuni menu CSS sul mio sito che si espandono con :hover
(senza js)
Funziona in modo semi-rotto su iDevices, ad esempio un tocco attiverà la :hover
regola ed espanderà il menu, ma poi toccando altrove non rimuove il file :hover
. Inoltre, se è presente un collegamento all'interno dell'elemento che è stato modificato :hover
, è necessario toccare due volte per attivare il collegamento (il primo tocco attiva :hover
, il secondo tocco attiva il collegamento).
Sono riuscito a far funzionare bene le cose su iPhone vincolando l' touchstart
evento.
Il problema è che a volte mobile safari sceglie ancora di attivare la :hover
regola dal css invece che dai miei touchstart
eventi!
So che questo è il problema perché quando disabilito :hover
manualmente tutte le regole nel css, il safari mobile funziona alla grande (ma i browser normali ovviamente non lo fanno più).
Esiste un modo per "annullare" dinamicamente le :hover
regole per determinati elementi quando l'utente è su mobile safari?
Vedere e confrontare il comportamento di iOS qui: http://jsfiddle.net/74s35/3/ Nota: solo alcune proprietà CSS attivano il comportamento a due clic, ad esempio display: none; ma non sfondo: rosso; o decorazione del testo: sottolineato;