Variation von e.touches, e.targetTouches und e.changedTouches

Lesezeit: 2 Minuten

Benutzer-Avatar
Andrej Sisu

Nehmen wir an, ich höre zu touchstart, touchmove und touchend auf der body Element.

Lassen Sie mich wissen, wenn ich falsch liege, aber ich denke e.touches ist das gleiche wie e.targetTouches? Wenn das so ist, wie e.changedTouches variiert in Bezug auf sie?

Ich meine, bei einer Berührung zu einem bestimmten Zeitpunkt hole ich das Touchevent und parse es. Meiner Erfahrung nach sind alle drei Berührungsvariablen gleich.

Ich muss die geparsten Daten an den Server senden und es ist ziemlich überflüssig, dreimal genau dieselbe Zeichenfolge zu senden. Gibt es keine Möglichkeit, sie einmal zu senden und das Touchevent programmgesteuert auf dem Server zu reproduzieren?

Benutzer-Avatar
Andrej Sisu

Wir haben folgende Listen:

  • touches: Eine Liste mit Informationen für jeden Finger, der gerade den Bildschirm berührt
  • targetTouches: Wie Berührungen, wird aber nur auf die Informationen für Fingerberührungen gefiltert, die innerhalb desselben Knotens begonnen haben
  • changedTouches: Eine Liste mit Informationen für jeden am Ereignis beteiligten Finger

Um besser zu verstehen, was in diesen Listen enthalten sein könnte, gehen wir schnell einige Beispiele durch. Sie variieren nach folgenden Regeln:

  • Wenn ich einen Finger nach unten drücke, haben alle drei Listen die gleichen Informationen. Es wird drin sein changedTouches weil das Herunterdrücken des Fingers das Ereignis verursacht hat
  • Wenn ich einen zweiten Finger auflege, touches hat zwei Elemente, eines für jeden Finger. targetTouches hat nur dann zwei Elemente, wenn der Finger im selben Knoten wie der erste Finger platziert wurde. changedTouches enthält die Informationen zum zweiten Finger, da dieser das Ereignis verursacht hat
  • Wenn ich zwei Finger genau gleichzeitig auflege, ist es möglich, zwei Elemente darin zu haben changedToucheseine für jeden Finger
  • Wenn ich meine Finger bewege, ändert sich nur die Liste changedTouches und enthält Informationen, die sich auf so viele Finger beziehen, wie sie sich bewegt haben (mindestens einer).
  • Wenn ich einen Finger hebe, wird er entfernt touches, targetTouches und erscheint darin changedTouches da es das Ereignis verursacht hat
  • Das Entfernen meines letzten Fingers wird gehen touches und targetTouches leer und changedTouches enthält Informationen für den letzten Finger

  • Könnten Sie den Knotenbegriff erläutern?

    – Martin

    25. Oktober 2012 um 17:51 Uhr

  • Sind diese Informationen für alle Geräte korrekt, dh für Android- und Safari-Umgebungen?

    – David

    19. April 2013 um 12:22 Uhr

  • Es scheint auch, wie Sie auch bekommen können e.touches wird aktualisiert, wenn Sie anhängen touchmovedh e.touches[0].pageX Aktualisierung. Gibt es Fälle, in denen das nicht funktioniert?

    – Matt

    30. Juli 2013 um 22:20 Uhr


  • Die sollten wohl gleich sein. Ich schätze, bei ”’touchmove”’ ist es nicht die Art und Weise, wie sich ”’changedTouches”’ ändert.

    – Andrei Zisu

    31. Juli 2013 um 7:11 Uhr

  • Wenn Sie einen Finger bewegen (der bereits unten ist) und gleichzeitig einen Finger platzieren (Berührungsstart), werden beide Ereignisse in geänderten Berührungen sein?

    – BT

    23. August 2013 um 15:51 Uhr

1073720cookie-checkVariation von e.touches, e.targetTouches und e.changedTouches

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy