【问题标题】:HTML5 Canvas on iPhone highlights on touchstart / mousedown eventsiPhone 上的 HTML5 Canvas 突出显示 touchstart / mousedown 事件
【发布时间】:2011-12-19 13:05:18
【问题描述】:

每当触摸(并按住)画布时,它都会以较深的颜色突出显示。当触摸被释放时,它会恢复正常。它不像文本选择,它与 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;
});

当应用程序保存到“主屏幕”时,问题会更严重。当触摸画布的边缘时,它确实会在网络浏览器中发生,但在主屏幕应用程序上,无论触摸画布的位置,它都会这样做。

这个问题的原因可能是什么?

【问题讨论】:

  • 你能提供一个例子的链接吗?

标签: jquery iphone html canvas


【解决方案1】:

我最终发现问题可以用下面的CSS来解决:

.puzzle canvas {
    -webkit-tap-highlight-color: transparent;
}

【讨论】:

    【解决方案2】:

    也许您需要在查看页面时取消模糊元素?

    $(window).focus(function() { $(':focus').blur(); });
    

    或者...

    $(document).ready(function() {
        setTimeout(function() {
            $(':focus').blur();
        }, 200); // Arbitrary amount.
    });
    

    似乎是一个粗略的解决方案,但它可能会有所帮助。

    【讨论】:

    • 感谢您的帮助,不幸的是,这似乎不起作用。每次触摸画布时都会出现此问题。它与超链接上显示的焦点相同,但我不希望它出现在画布上,因为它看起来很糟糕。再次感谢
    猜你喜欢
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多