Wann sollte man touchmove vs. mousemove verwenden?

Lesezeit: 2 Minuten

Benutzer-Avatar
Soliman

Ich baue ein Web-Handyspiel, es läuft auf Browsern (PC/Mobile).

Muss ich die verwenden touchmove oder nicht?

Wie kann ich die ausführen touchmove Veranstaltung wie die mousemove Veranstaltung?

Benutzer-Avatar
Konstantin Dinev

Für die Parität zwischen Desktop und Touch haben Sie die folgenden Äquivalenzen:

mousedown === touchstart
mousemove === touchmove
mouseup === touchend

Also wenn du handhabst mousedown, mousemove und mouseup dann müssen Sie die entsprechenden äquivalenten Ereignisse nicht unter Berührung behandeln. Es sollten dieselben Handler ausgeführt werden.

  • Das ist richtig, ABER:
    Wenn Sie die Berührungsereignisse hinzufügen, funktioniert es NICHT wie die Mausereignisse.
    Was wir für das Touch-Handy machen, läuft NICHT auf dem PC.

    – Soliman

    27. November 2012 um 8:25 Uhr


  • Sollte nicht sein (Mousemove && (MousedownHasFired && MouseupHasNotYetBeFired)) === TouchMove?

    – Juan García

    5. Juni 2014 um 18:41 Uhr

  • Das ist nicht wahr, mousemove ~= touchmove Bei mousemove nimmt es das Element, über das die Maus schwebte, aber bei touchmove nimmt es das erste berührte Element.

    – Evavans

    21. Februar 2018 um 21:20 Uhr


  • Was kann ich tun, wenn ich unter stackoverflow.com/questions/58934867/…

    – Mahesh

    20. November 2019 um 5:41 Uhr

  • Es scheint, als wäre der letzte Absatz eine leichte Vereinfachung. habe ich umgesetzt mousedown + mousemove + mouseup, aber wenn ich meine App auf einem Touch-Gerät verwende, wird keiner von ihnen ausgelöst. Dies kann entweder (1) browserspezifisch sein, (2) aufgrund des synthetischen Event-Handler-Verhaltens in React oder vielleicht (3) ein Ergebnis einiger CSS-Eigenschaften wie zB touch-action. Jede Klarstellung, unter welchen Umständen diese Aussage gilt, wäre willkommen.

    – bluenote10

    9. Januar 2021 um 17:15 Uhr

Außer auf dem iPad – wo Mausschweben, Maus runter, Maus hoch und klicken werden alle ausgelöst … außer wenn Sie irgendetwas im Mausschweben ändern … dann wird nichts anderes ausgelöst … sehr ärgerlich … mehr Details siehe http://sitr.us/2011/07/28/how-mobile-safari-emulates-mouse-events.html

Sie können beide in einer Komponente verwenden (wrt reagieren) für zB:
<component onMouseMove={handleMouseMove} onTouchMove={handleMouseMove} />
Auf der Basis des verwendeten Bildschirms wechselt die Reaktion automatisch zwischen Maus- und Berührungsoptionen, oder Sie können auch verwenden
("ontouchstart" in document.documentElement)
es gilt für Touchscreen-Geräte und umgekehrt ref: https://codepen.io/tteske/pen/KKwxOxp

1091710cookie-checkWann sollte man touchmove vs. mousemove verwenden?

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

Privacy policy