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 :hoverRegel 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 touchstartEreignis gebunden habe .
Das Problem ist, dass mobile Safari manchmal immer noch die :hoverRegel aus dem CSS anstelle meiner touchstartEreignisse auslöst !
Ich weiß, dass dies das Problem ist, denn wenn ich alle :hoverRegeln manuell im CSS deaktiviere , funktioniert die mobile Safari hervorragend (aber normale Browser funktionieren offensichtlich nicht mehr).
Gibt es eine Möglichkeit, :hoverRegeln 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;
