私はWebkitでiOSアプリを構築しているので、UI全体がWebビューです。 Webビューの外側の境界に近い要素(touchStartイベントがバインドされていない要素)のtouchStartで、Webビューの全領域に半透明の灰色のボックスがオーバーレイされます。原因として-webkit-tap-highlight-color
または-webkit-touch-callout
を削除しました。この動作を削除するにはどうすればよいですか?
このスタイルを置くだけで、デフォルトのアクションがありますが、灰色のオーバーレイはありません
a {
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
アクションパネルを削除したい場合は、これを置いてください
a {
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
}
そして、あなたは行きます!ついにきれいなリンク!
私の実用的な解決策は、htmlドキュメントの本文のtouchstart
イベントでDefaultをキャプチャして防止することです。他のすべてのより明示的なイベントハンドラーは影響を受けません。 select
要素で問題が発生しました。これは、bodyイベントハンドラーで対処しました(jQueryを使用しています)。
$('body').live(
'touchstart',
function(e){
if(e.target.localName != 'select'){
e.preventDefault();
}
}
)