iPhone和Safari上的Safari iPad提供触摸颜色反馈,我想阻止它

时间:2010-05-28 22:02:38

标签: iphone ipad webkit

单击具有Javascript处理程序的元素会使元素变为“灰色叠加”。这通常很好,但我正在使用事件委托来处理许多子元素的触地事件。由于委托,“灰色叠加”出现在父元素上并且看起来很糟糕且令人困惑。

我可以将事件处理程序附加到单个元素以避免问题,但这在计算上会非常浪费。我宁愿有一些webkit css属性,我可以覆盖它来关闭它。我的应用程序中已经有了视觉反馈,因此不需要“灰色叠加”。

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

-webkit-tap-highlight-color

  

要禁用点击突出显示,请设置   alpha值为0(不可见)

答案 1 :(得分:2)

$('body')。bind('touchstart',function(e){     e.preventDefault() })

答案 2 :(得分:0)

对于那些阅读这个问题的人来说,另一个CSS属性不仅会删除叠加层而且还会阻止触摸设备与用户交互以评估抽头意图(这会显着延迟事件触发的时间),是使用cursor属性。

a.notTappable {
    cursor:default
}

此外,如果提问者描述了您有父母后代的情况,并且您只希望后代可以点击,并且您希望忽略父母的所有事件,以下解决方案将为您提供最佳表现(通过完全禁用冒泡到父母)。阅读webkit规范here

.parent {
    pointer-events:none;
}
.parent .descendant {
    pointer-events:default;
}

我只提到这一点,因为这里的性能差异很大。