科尔多瓦 - “触摸移动”事件不会立即触发

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

本文关键字:事件 触摸移动 移动 触摸      更新时间:2023-09-26

我有这个简单的代码:

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;
    }
}

我想做的是让事件"触摸移动"立即触发,但它需要特定数量的像素才能通过,比如触发前的阈值。

就我而言,似乎我必须在它发射之前移动手指大约半英寸。有没有办法让它在没有阈值的情况下被解雇?

我正在尝试在我的应用程序中拖动一个简单的框,但它似乎在识别"触摸移动"之前检查不同的事件,并且由于延迟而使其看起来很丑。

这是一个距离问题,而不是时间问题。

我能够通过添加以下内容来解决此问题:

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