Frage

Ich bin in der Lage, die Cursor-Position zu finden. Aber ich brauche, um herauszufinden, ob die Maus stabil ist. Wenn die Maus nicht länger als 1 Minute bewegt wurde, dann müssen wir die Benutzer alarmieren.

Wie seine möglich, gibt es spezielle Veranstaltungen für das? (Nur für IE in Javascript)

War es hilfreich?

Lösung

ein Timeout einstellen, wenn die Maus 1 Minute in die Zukunft verschoben wird, und wenn die Maus bewegt wird, deaktivieren Sie das Timeout:

var timeout;
document.onmousemove = function(){
  clearTimeout(timeout);
  timeout = setTimeout(function(){alert("move your mouse");}, 60000);
}

Andere Tipps

Gibt es nicht eine Möglichkeit, einen Timer einstellen, nach jeder Mausbewegung Ereignisse starten Erhöhen?

Wenn es zu einer Minute wird dann das Meldungsfeld auftauchen, aber jedes Mal, wenn die Maus bewegt sich der Timer zurückgesetzt wird.

Verwenden Sie einen Timer, der seinen Wert auf mousemove- Ereignis zurücksetzt. Wenn Timer 1 Minute erreicht. -> etwas tun

Weitere Informationen über Timer hier http: //www.w3schools .com / js / js_timing.asp
Und weitere Informationen auf catchin Mausereignisse hier http: //www.quirksmode .org / js / events_mouse.html

Ja, Sie haben eine onmousemove Veranstaltung in Javascript, so zu erreichen, was Sie brauchen, müssen Sie nur Code so etwas tun:

startTimer();
element.onmousemove = stopTimer(); //this stops and resets the timer

Sie können es auf dem Dokument Body-Tag zum Beispiel verwendet werden.

UPDATE:. @Marius ein besseres Beispiel als diese erreicht hat,

Sie können das onmousemove Ereignis verwenden. Innen ist es, clear () und setTimeout (your_warning, 1 Minute).

könnten Sie dieses Skript / Schnipsel die Position des Mauszeigers zu erkennen und „erinnern“ sie. Dann mit einem Timer „setTimeout (...)“ die Lage zu überprüfen, lassen Sie uns in jeder Sekunde sagen, und diese Zeit erinnern.

Wenn mehr als eine Minute vergangen und die Position nicht geändert hat, können Sie den Benutzer alarmieren könnten.

Hier ist eine one-and-done-Funktion, die jedes Element für die Bewegung überprüfen:

function mouse (element, delay, callback) {

   // Counter Object
   element.ms = {};

   // Counter Value
   element.ms.x = 0;

   // Counter Function
   element.ms.y = function () {

      // Callback Trigger
      if ((++element.ms.x) == delay) element.ms.callback(element, element.ms);
   };

   // Counter Callback
   element.ms.callback = callback;

   // Function Toggle
   element.ms.toggle = function (state) {

      // Stop Loop
      if ([0, "off"][state]) clearInterval(element.ms.z);

      // Create Loop
      if ([1, "on"][state]) element.ms.z = setInterval(element.ms.y, 1);
   };

   // Function Disable
   element.ms.remove = function () {

      // Delete Counter Object
      element.ms = null; return delete element.ms;
   };

   // Function Trigger
   element.onmousemove = function () {

      // Reset Counter Value
      element.ms.x = -1;
   };

   // Return
   return element.ms;
};

Verwendung: mouse(element, delay, callback)

Beispiele: Erstellen Sie einen Video-Player mit der Maus nach 5 Sekunden ausgeblendet, wenn im Leerlauf und Vollbild

let x = mouse(video, 5000, function (a) {
   if (document.webkitIsFullScreen) video.style.cursor = "none";
});

x.toggle(1); addEventListener("mousemove", function () {
   video.style.cursor = "auto";
});

Chat-Raum AFK (45 Sekunden) (vorausgesetzt, Sie haben eine Chat-Box und eine Nachrichtensendefunktion):

let x = mouse(chatBox, (45e3), function (a) {
   chatBox.send({ text: chatBox.username + " is AFK.", italic: true });
});

x.toggle(1); x.addEventListener("mousemove", function () {
  chatBox.send({ text: chatBox.username + " is no longer AFK", italic: true });
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top