W mojej witrynie mam kilka menu css, które rozwijają się o :hover
(bez js)
Działa to w częściowo zepsuty sposób na iDevices, na przykład dotknięcie aktywuje :hover
regułę i rozszerzy menu, ale stuknięcie w innym miejscu nie spowoduje usunięcia :hover
. Również jeśli w elemencie, który jest :hover
'ed, znajduje się link , musisz dwukrotnie dotknąć, aby aktywować łącze (pierwsze :hover
dotknięcie wyzwala łącze, drugie dotknięcie wyzwala łącze).
Udało mi się sprawić, że wszystko działa dobrze na iPhonie, wiążąc touchstart
wydarzenie.
Problem polega na tym, że czasami mobilne safari nadal wybiera wyzwalanie :hover
reguły z css zamiast z moich touchstart
wydarzeń!
Wiem, że to jest problem, ponieważ kiedy wyłączam wszystkie :hover
reguły ręcznie w css, mobilne safari działa świetnie (ale zwykłe przeglądarki już oczywiście nie).
Czy istnieje sposób na dynamiczne „anulowanie” :hover
reguł dla niektórych elementów, gdy użytkownik korzysta z mobilnego safari?
Zobacz i porównaj zachowanie iOS tutaj: http://jsfiddle.net/74s35/3/ Uwaga: tylko niektóre właściwości css wyzwalają zachowanie dwóch kliknięć, np. Display: none; ale nie tło: czerwone; lub dekoracja tekstu: podkreślenie;