2

我正在尝试使此地图在触摸屏上工作(必须启用 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;
});

我尝试了有和没有preventDefaultor return false,但没有成功。我错过了什么 ?

您可以使用Chrome for Android重现此问题,首先启用 WebGL(转到chrome://flags并启用 WebGL),此处此处以获得更漂亮的视图

4

1 回答 1

3

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

于 2013-07-18T14:20:51.653 回答