触控移动事件并非始终在Chrome for Android上触发

时间:2013-07-18 14:02:48

标签: javascript android google-chrome

我试图让这个map在触摸屏上工作(必须启用WebGL)。

在Android上安装Firefox可以正常使用。但是对于Chrome,最初,如果我触摸屏幕它可以工作,但如果我释放屏幕并再次快速触摸它(在我释放屏幕后不到1或2秒),则不会触发touchmove事件。如果我等待足够长的时间,我会正确收到touchmove事件。

以下是一些相关代码(抱歉,我无法提供完整的源代码):

canvas.on('touchstart', function() {
    //init drag
    e.preventDefault();
    return false;
});
canvas.on('touchmove', function() {
    //move the map
    e.preventDefault();
    return false;
});
canvas.on('touchend', function() {
    //stop drag
    e.preventDefault();
    return false;
});

我尝试使用和不使用preventDefaultreturn false,但没有成功。我错过了什么?

您可以使用Chrome for Android重现此问题,首先启用WebGL(转到chrome://flags并启用WebGL),herehere for a more beautiful view

1 个答案:

答案 0 :(得分:3)

感觉你的应用程序在touchEnd上阻塞了。在地址栏更新为什么新坐标后,touchmove再次工作。 window.location.replace可能有问题吗? 我在window.location.replace期间使用硬件加速功能在网站上遇到了类似的阻止。