2012-04-28 5 views
6

Ich versuche, auf einer Schnittstelle auf HTML5 für Mobile zu arbeiten. Ich versuche einer Bewegung zu folgen, mit Touchstart/touchmove/touchend/touchcancel. aber wenn ich versuche, eine mouvement zu folgen, ich habe durchweg quikly au ‚touchcancel‘ und nicht mehr Berührungsbewegungs dann ...html5/android touchcancel

, wenn ich dies versuchen: http://miniapps.co.uk/code/touchcancel/ es perfekt funktioniert, ich habe kein Problem.

Aber ich denke, das Problem kommt von der Mouvement des Webbrowsers, die meine Leinwand stören. Weißt du, kann ich das beheben?

// Ich versuche, mehr zu erklären: - Hier ist mein Testcode: http://frys.free.fr/mNaissance/test.html es ist der „Jigsaw“ Puzzle-Code, ich versuche, mit einem mobilen, um die Arbeit. Ich hatte einen "Log" div unter dem Text. Und wenn ich "touchmove" auf der grauen Leinwand mache, habe ich sehr schnell einen 'touchcancel' und nicht mehr 'touchmove' Ist es klarer? Tut mir leid für mein schlechtes Englisch !

Vielen Dank für Hilfe

+0

Ich habe keine Ahnung, wovon du sprichst. Bitte sei präziser. Und möglicherweise Code hinzufügen, die nicht funktioniert, oder mehr Beispiele zu erklären, was Sie versucht haben – Entreco

+0

Ich lief nur in etwas, das ich glaube, ist das gleiche Problem: Die Frage ist "Android-Browser manchmal ein Touchcancel-Ereignis aus keinem ersichtlichen Grund, warum?" // Derselbe Code läuft gut auf iOS-Geräten – Corkscreewe

+0

Ihre Links haben nicht funktioniert, aber diese SO Frage kann einige Hinweise haben: http://StackOverflow.com/Questions/15944197/ –

Antwort

7

Ich glaube, ich den Grund dafür herausgefunden - Android-Browser (wie auch Chrome für Android 4.0 und höher) glaubt, Sie zu blättern versuchen, damit es die touchcancel Ereignis ausgelöst. Was Sie tun sollten, ist

event.preventDefault(); 

auf touchmove Ereignis, das Sie erfassen.

+2

Mein Fall wurde verwandt, aber mit dieser nicht Hilfe. Für diejenigen, die möglicherweise ein vage mit dem OP verbundenes Problem haben, lesen Sie diese SO-Frage: http://stackoverflow.com/questions/15944197/ –

+0

Diese Lösung gilt nun auch für die Desktop-Version von Chrome aus den gleichen Gründen. – thure

+1

Dies bezieht sich nicht nur auf Android-Browser, dies ist beabsichtigt, da der Browser in allen Fällen Aktionen wie Schwenken und Zoomen automatisch übernehmen muss. Aus diesem Grund löst der Browser das Ereignis "touchcancel" aus, wenn er den 'touchmove' übernimmt Ereignis, um die Ausführung von 2 verschiedenen Aktionen für dasselbe Ereignis zu verhindern (dies hätte schreckliche Ergebnisse) – andreszs