Wie wird die Richtung bei onmousemove-Ereignis bestimmt?

8

Unter bestimmten Bedingungen möchte ich das onmousemove -Ereignis abbrechen, wenn die Maus zum Beispiel ausfällt. Ist es möglich, die Richtung von onmousemove event zu bestimmen? jQ oder JS ist Ok.

Ich habe Drag'n'Drop-Elemente. Der Benutzer zieht das Element hoch. Wenn beispielsweise der untere Teil des Elements eine bestimmte Position im Dokument erreicht (d. H.% Co_de% vom Anfang des Dokuments), wird 500px beendet. Und wenn der Benutzer versucht, das Element wieder nach oben zu ziehen, wird die Funktion nicht gestartet. Für dieses Element ist nur das Ziehen nach unten möglich. Daher dachte ich, es wäre ziemlich einfach, die Richtung des onmousemove -Ereignisses zu erkennen. Aber es scheint, dass es keine solchen Standardeigenschaften gibt.

    
Green 28.01.2012, 18:12
quelle

3 Antworten

21

Sie können die Position des letzten mousemove Ereignisses speichern, um es mit der aktuellen Position zu vergleichen:

%Vor%

Hier ist eine Demo: Ссылка

Aktualisieren

Sie können das mousemove -Ereignis auch drosseln, um mehr über eine allgemeine Idee zu erfahren, wohin sich die Maus bewegt hat:

%Vor%

Dies wird nur die Position des Cursors gegen seine letzte Position überprüfen, wenn:

  1. die letzte Position existiert.
  2. Die Variable mousemove_ok wird auf true gesetzt, was jede halbe Sekunde erledigt wird.

Hier ist eine gedrosselte Demo: Ссылка

    
Jasper 28.01.2012, 18:21
quelle
4

Es gibt Standardeigenschaften, die Deltas anzeigen, die für das vorherige Mausbewegungsereignis relevant sind:

%Vor%

Wie bereits in der Dokumentation erwähnt:

  

Die schreibgeschützte MouseEvent.movementX-Eigenschaft bietet die Verschiebung der X-Koordinate des Mauszeigers zwischen diesem Ereignis und dem vorherigen mouse move-Ereignis.

    
mirik 31.07.2016 07:48
quelle
0

event.movementX ist der Unterschied in px von der vorherigen PositionX, z. 100 für die rechte Bewegung von 100 px, -100 für die linke Bewegung usw., 0 für keine Bewegung.

    
jimver04 29.08.2017 07:08
quelle