Cordova - 'touchmove' 事件不会立即触发

Cordova - 'touchmove' Event doesn't fire right away

我有这个简单的代码:

document.addEventListener('touchmove', onDocumentTouchMove, false);

function onDocumentTouchMove(event)
{
    for(var i = 0; i < event.touches.length; i++)
    {
        clickX[i] = event.touches[i].pageX;
        clickY[i] = event.touches[i].pageY;
    }
}

我想要做的是让事件 'touchmove' 立即触发,但它需要特定数量的像素才能通过,就像触发前的阈值一样。

就我而言,似乎我必须在它开火前将手指移动大约半英寸。有没有办法让它在没有门槛的情况下开火?

我试图在我的应用程序中拖动一个简单的框,但它似乎在识别 'touchmove' 之前正在检查不同的事件,并且由于延迟使它看起来很难看。

这是距离问题,不是时间问题。

我通过添加解决了这个问题:

event.preventDefault();

在我的函数中:

onDocumentTouchStart(防止延迟触发其他事件)

onDocumentTouchMove(防止滚动)

document.addEventListener('touchstart', onDocumentTouchMove, false);
document.addEventListener('touchmove', onDocumentTouchMove, false);

function onDocumentTouchStart(event)
{
    event.preventDefault(); //Allows firing of other events asap
    for(var i = 0; i < event.touches.length; i++)
    {
        clickX[i] = event.touches[i].pageX;
        clickY[i] = event.touches[i].pageY;
    }
}
function onDocumentTouchMove(event)
{
    event.preventDefault(); //Prevents Scrolling
    for(var i = 0; i < event.touches.length; i++)
    {
        clickX[i] = event.touches[i].pageX;
        clickY[i] = event.touches[i].pageY;
    }
}

这个问题几个月了!现在它在我所有的应用程序中都能完美运行! :D

此外,这里有一篇关于触摸事件的精彩文章:

https://www.w3.org/TR/touch-events/#dfn-touchmove