サイトに:hover
(js なしで)展開する CSS メニューがいくつかあります。
これは、iDevices では半壊れた方法で機能します。たとえば、タップすると:hover
ルールがアクティブになり、メニューが展開されますが、他の場所をタップしても削除されません:hover
。:hover
また、 'ed'要素内にリンクがある場合は、リンクをアクティブにするために 2 回タップする必要があります (1 回目のタップでリンクがトリガーされ:hover
、2 回目のタップでリンクがトリガーされます)。
touchstart
イベントをバインドすることで、iPhone でうまく動作させることができました。
問題は、モバイル サファリが、イベントではなく:hover
CSS からルールをトリガーすることを選択する場合があることです。touchstart
cssですべてのルールを手動で無効にすると:hover
、モバイルサファリがうまく機能するため、これが問題であることはわかっています(ただし、通常のブラウザーは明らかに機能しません)。
:hover
ユーザーがモバイルサファリを使用しているときに、特定の要素のルールを動的に「キャンセル」する方法はありますか?
ここで iOS の動作を参照して比較してください: http://jsfiddle.net/74s35/3/ 注: 一部の css プロパティのみが 2 クリック動作をトリガーすることに注意してください。背景ではありません:赤。またはテキスト装飾: 下線;