我试图让这个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;
});
我尝试使用和不使用preventDefault
或return false
,但没有成功。我错过了什么?
您可以使用Chrome for Android重现此问题,首先启用WebGL(转到chrome://flags
并启用WebGL),here或here for a more beautiful view。
答案 0 :(得分:3)
感觉你的应用程序在touchEnd上阻塞了。在地址栏更新为什么新坐标后,touchmove再次工作。 window.location.replace可能有问题吗? 我在window.location.replace期间使用硬件加速功能在网站上遇到了类似的阻止。