Ich versuche, einige meiner Bibliotheken mit Touch-Geräten zum Laufen zu bringen, aber es fällt mir schwer, herauszufinden, wie sie unterstützt werden und wie sie funktionieren.
Grundsätzlich gibt es 5 Touch-Ereignisse , aber es scheint, dass es unter mobilen Browsern nur einen Konsens über das touchstartEreignis gibt (duh). Ich habe eine Geige als Testfall erstellt.
Ich habe dies auf meinem Galaxy Note mit Android 4 an Bord getestet, aber Sie können den Link auch mit einem Desktop-Browser überprüfen.
Das Ziel ist es, herauszufinden, wie man mit Wasserhähnen, Doppelhähnen und langen Wasserhähnen umgeht. Nichts Besonderes.
Grundsätzlich passiert Folgendes:
Der Android-Aktienbrowser löst keine Touch-Ereignisse aus. Es wird versucht , nur Mausklicks mit Hähnen zu emulieren, Brennen mousedown, mouseupund clickEreignissen hintereinander, aber doppelt Taps einzoomen nur in und out tha Seite.
Chrome für Android löst das Touchstart-Ereignis aus, wenn der Finger den Bildschirm berührt. Wenn es früh genug freigegeben ist, feuert es dann mousedown, mouseup, touchendund schließlich clickEreignisse.
Im Fall einer langen Hahn , nach etwa einer halben Sekunde es feuert , mousedownund mouseup, und , touchendwenn der Finger angehoben wird, ohne clickEreignis am Ende.
Wenn Sie Ihren Finger bewegen , wird ein touchmoveEreignis ein paar Mal ausgelöst, dann wird ein touchcancelEreignis ausgelöst, und danach passiert nichts, nicht einmal ein touchendEreignis beim Anheben des Fingers.
Durch zweimaliges Tippen werden die Funktionen zum Vergrößern / Verkleinern ausgelöst , aber in Bezug auf das Ereignis wird die Kombination ausgelöst touchstart- toucheventzweimal, ohne dass Mausereignisse ausgelöst werden.
Firefox für Android feuert richtig die touchstartVeranstaltung, und bei kurzem Hahn Feuer mousedown, mouseup, touchendund clickdanach.
Im Fall einer langen Hahn , feuert sie mousedown, mouseupund schließlich touchendEreignisse. Für diese Dinge ist es dasselbe wie für Chrome.
Wenn Sie jedoch Ihren Finger bewegen , wenn er touchmovekontinuierlich ausgelöst wird (wie zu erwarten ist), das Ereignis jedoch nicht ausgelöst wird, touchleavewenn der Finger das Element mit dem Ereignis-Listener verlässt, und das Ereignis nicht ausgelöst wird, touchcancelwenn der Finger das Browser-Ansichtsfenster verlässt .
Bei Doppelklicks verhält es sich wie Chrome.
Opera Mobile macht das Gleiche wie Chrome und Firefox für ein kurzes Tippen, aktiviert jedoch bei langem Drücken eine Freigabefunktion, die ich wirklich deaktivieren möchte. Wenn Sie Ihren Finger bewegen oder zweimal tippen, verhält es sich wie Firefox.
Chrome Beta macht das Übliche für kurze Taps, aber bei langen Taps wird das mouseupEreignis nicht mehr ausgelöst, nur touchstartdann, mousedownnach einer halben Sekunde, dann, touchendwenn der Finger angehoben wird. Wenn der Finger bewegt wird, verhält er sich jetzt wie Firefox und Opera Mobile.
Bei doppeltem Tippen werden beim Verkleinern keine Berührungsereignisse ausgelöst , sondern nur beim Vergrößern.
Chrome Beta zeigt das seltsamste Verhalten, aber ich kann mich nicht wirklich beschweren, da es sich um eine Beta handelt.
Die Frage ist : Gibt es eine einfache Möglichkeit, kurze, lange und doppelte Taps in den gängigsten Browsern von Touch-Geräten zu erkennen?
Schade, dass ich es nicht auf iOS-Geräten mit Safari oder IE für Windows Phone 7 / Phone 8 / RT testen kann, aber wenn einige von Ihnen dies können, wäre Ihr Feedback sehr dankbar.
