在移动Safari / Webview中防止touchstart上的灰色叠加

时间:2011-02-24 15:47:24

标签: ios webkit mobile-safari

我正在webkit中构建一个iOS应用程序,因此我的整个UI都是一个webview。在webview外边界附近的任何元素的touchStart上(没有绑定到它的touchStart事件),我得到一个半透明的灰色框覆盖webview的整个区域。我已将-webkit-tap-highlight-color-webkit-touch-callout排除在原因之外。如何删除此行为?

2 个答案:

答案 0 :(得分:73)

只需放置此样式,您仍然可以使用默认操作但不使用灰色叠加

a {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

如果你想删除动作面板,只需把这个

a {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-touch-callout: none;
}

你去吧!最后清理链接!

答案 1 :(得分:7)

我的工作解决方案是捕获并阻止对html文档正文的touchstart事件的默认。所有其他更明确的事件处理程序不受影响。我确实遇到了select元素的问题,我在body事件处理程序中解决了这个问题(我正在使用jQuery):

$('body').live(
'touchstart', 
function(e){
    if(e.target.localName != 'select'){
        e.preventDefault(); 
    }
}