So erkennen Sie, wenn die Maus angehalten hat

8

Ich habe den folgenden JavaScript-Code geschrieben. Ich benutze es um zu erkennen, wann sich die Maus bewegt und wann sie angehalten hat. MouseStopped () -Funktion ist eine Schleife von Hunderten von Elementen, die mir sagen, wo die Maus gestoppt wurde, also möchte ich es nur aufrufen, wenn die Maus angehalten hat.

%Vor%

Jetzt habe ich folgende Probleme:

  1. Obwohl ich clearInterval(CheckMovement) anrufe, tut es das nicht höre auf zu iterieren; es läuft ständig, was das Problem verursacht MouseStopped() mehrmals aufrufen. Warum hört es nicht auf?
  2. Ich möchte MouseStopped() in der Mitte seiner Operation unterbrechen, wenn die Maus bewegt wird, bevor sie die Schleife beendet hat. Deshalb stelle ich stopLoop = true; ein. Das scheint aber auch nicht so zu funktionieren wie beabsichtigt. Wie kann ich diese erreichen?

Danke.

EDITS

    
Hannington Mambo 15.07.2013, 04:33
quelle

1 Antwort

14

Es ist wirklich einfach: Wenn die Maus bewegt wird, setze ein Timeout für XXX Millisekunden in der Zukunft. Löschen Sie auch vergangene Timeouts, um die Zeit zurückzusetzen. Wie dies im Mauszeiger Listener

%Vor%

Siehe JSFiddle .

    
Robbie Wxyz 09.10.2013, 03:22
quelle