2016-02-25 4 views
1

У меня есть этот простой код:Кордова - «TouchMove» Событие does't огонь сразу

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» и заставляет его выглядеть уродливым из-за задержки.

Это вопрос о расстоянии, а не время.

ответ

1

я был в состоянии решить эту проблему, добавив:

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

Смежные вопросы