touchmove事件并不总是在Android版Chrome上触发

touchmove event not always triggered on Chrome for Android

本文关键字:Chrome Android 事件 touchmove      更新时间:2023-09-26

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

在安卓系统上使用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),在此处或此处查看更美丽的视图。

感觉你的应用程序在touchEnd上被阻塞了。在地址栏更新为什么是新坐标后,触摸移动再次工作。可能是窗户出了问题。位置替换?我在一个使用硬件加速功能的网站上遇到了类似的阻塞。定位替换。