iPhone上的HTML5 Canvas在touchstart / mousedown事件中突出显示
每当触摸(并保持)canvas时,它都会以较暗的颜色突出显示。 触摸释放后,恢复正常。 它不像文本选择,它与iPhone在超链接上使用的亮点相同。
我使用jQuery来绑定事件:
$('canvas').bind('mousedown touchstart', function(e) { var c = $(this), offset = c.offset(); var touch = { x: (e.targetTouches ? e.targetTouches[0].pageX : e.pageX) - offset.left, y: (e.targetTouches ? e.targetTouches[0].pageY : e.pageY) - offset.top }; testApp.lastTouch = touch; return false; });
当应用程序保存到“主屏幕”时,问题会更严重。 当触摸canvas的边缘时,它确实发生在Web浏览器中,但是在主屏幕应用程序上,无论触摸的是哪个canvas,它都会执行它。
可能是这个问题的原因是什么?
我最终发现问题可以通过以下CSS解决:
.puzzle canvas { -webkit-tap-highlight-color: transparent; }
也许你需要在查看页面时取消元素?
$(window).focus(function() { $(':focus').blur(); });
要么…
$(document).ready(function() { setTimeout(function() { $(':focus').blur(); }, 200); // Arbitrary amount. });
似乎是一个粗略的解决方案,但它可能会有所帮助。