Ich habe einige CSS-Menüs auf meiner Website, die mit :hover
(ohne js) erweitert werden.
Dies funktioniert auf iDevices halb unterbrochen. Wenn Sie beispielsweise auf tippen, wird die :hover
Regel aktiviert und das Menü erweitert. Wenn Sie jedoch auf eine andere Stelle tippen, wird das nicht entfernt :hover
. Auch wenn sich innerhalb des Elements ein Link befindet :hover
, der bearbeitet wird, müssen Sie zweimal tippen, um den Link zu aktivieren (erster Tap-Trigger :hover
, zweiter Tap-Trigger-Link).
Ich habe es geschafft, dass die Dinge auf dem iPhone gut funktionieren, indem ich das touchstart
Ereignis gebunden habe .
Das Problem ist, dass mobile Safari manchmal immer noch die :hover
Regel aus dem CSS anstelle meiner touchstart
Ereignisse auslöst !
Ich weiß, dass dies das Problem ist, denn wenn ich alle :hover
Regeln manuell im CSS deaktiviere , funktioniert die mobile Safari hervorragend (aber normale Browser funktionieren offensichtlich nicht mehr).
Gibt es eine Möglichkeit, :hover
Regeln für bestimmte Elemente dynamisch "abzubrechen" , wenn sich der Benutzer auf einer mobilen Safari befindet?
Sehen und vergleichen Sie das iOS-Verhalten hier: http://jsfiddle.net/74s35/3/ Hinweis: Nur einige CSS-Eigenschaften lösen das Zwei-Klick-Verhalten aus, z. B. Anzeige: keine; aber nicht Hintergrund: rot; oder Textdekoration: unterstreichen;