Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Element: mousemove event

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Das mousemove-Ereignis wird bei einem Element ausgelöst, wenn ein Zeigegerät (normalerweise eine Maus) bewegt wird, während sich der Hotspot des Cursors innerhalb des Elements befindet.

Diese Ereignisse treten unabhängig davon auf, ob Maustasten gedrückt sind oder nicht. Sie können mit sehr hoher Geschwindigkeit auftreten, abhängig davon, wie schnell der Benutzer die Maus bewegt, wie schnell der Computer ist, welche anderen Aufgaben und Prozesse ausgeführt werden, etc.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("mousemove", (event) => { })

onmousemove = (event) => { }

Ereignistyp

Ein MouseEvent. Erbt von UIEvent und Event.

Event UIEvent MouseEvent

Ereigniseigenschaften

Diese Schnittstelle erbt auch Eigenschaften ihrer Eltern, UIEvent und Event.

MouseEvent.altKey Schreibgeschützt

Gibt true zurück, wenn die alt-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.button Schreibgeschützt

Die Nummer der gedrückten Taste (falls zutreffend), als das Mausereignis ausgelöst wurde.

MouseEvent.buttons Schreibgeschützt

Die Tasten, die gedrückt wurden (falls vorhanden), als das Mausereignis ausgelöst wurde.

MouseEvent.clientX Schreibgeschützt

Die X-Koordinate des Mauszeigers in Viewport-Koordinaten.

MouseEvent.clientY Schreibgeschützt

Die Y-Koordinate des Mauszeigers in Viewport-Koordinaten.

MouseEvent.ctrlKey Schreibgeschützt

Gibt true zurück, wenn die control-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.layerX Nicht standardisiert Schreibgeschützt

Gibt die horizontale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.

MouseEvent.layerY Nicht standardisiert Schreibgeschützt

Gibt die vertikale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.

MouseEvent.metaKey Schreibgeschützt

Gibt true zurück, wenn die meta-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.movementX Schreibgeschützt

Die X-Koordinate des Mauszeigers relativ zur Position des letzten mousemove-Ereignisses.

MouseEvent.movementY Schreibgeschützt

Die Y-Koordinate des Mauszeigers relativ zur Position des letzten mousemove-Ereignisses.

MouseEvent.offsetX Schreibgeschützt

Die X-Koordinate des Mauszeigers relativ zur Position des Randabstands des Zielknotens.

MouseEvent.offsetY Schreibgeschützt

Die Y-Koordinate des Mauszeigers relativ zur Position des Randabstands des Zielknotens.

MouseEvent.pageX Schreibgeschützt

Die X-Koordinate des Mauszeigers relativ zum gesamten Dokument.

MouseEvent.pageY Schreibgeschützt

Die Y-Koordinate des Mauszeigers relativ zum gesamten Dokument.

MouseEvent.relatedTarget Schreibgeschützt

Das sekundäre Ziel für das Ereignis, falls vorhanden.

MouseEvent.screenX Schreibgeschützt

Die X-Koordinate des Mauszeigers in Bildschirmkoordinaten.

MouseEvent.screenY Schreibgeschützt

Die Y-Koordinate des Mauszeigers in Bildschirmkoordinaten.

MouseEvent.shiftKey Schreibgeschützt

Gibt true zurück, wenn die shift-Taste gedrückt war, als das Mausereignis ausgelöst wurde.

MouseEvent.mozInputSource Nicht standardisiert Schreibgeschützt

Der Typ des Geräts, das das Ereignis erzeugt hat (einer der MOZ_SOURCE_*-Konstanten). Dies ermöglicht es Ihnen beispielsweise festzustellen, ob ein Mausereignis von einer echten Maus oder einem Touch-Ereignis erzeugt wurde (was die Genauigkeit beeinflussen kann, mit der Sie die mit dem Ereignis verbundenen Koordinaten interpretieren).

MouseEvent.webkitForce Nicht standardisiert Schreibgeschützt

Die Menge an Druck, die beim Klicken ausgeübt wird.

MouseEvent.x Schreibgeschützt

Alias für MouseEvent.clientX.

MouseEvent.y Schreibgeschützt

Alias für MouseEvent.clientY.

Beispiele

Das folgende Beispiel verwendet die mousedown, mousemove und mouseup Ereignisse, um dem Benutzer das Zeichnen auf einem HTML-canvas zu ermöglichen. Seine Funktionalität ist einfach: die Linienbreite ist auf 1 gesetzt und die Farbe ist immer schwarz.

Wenn die Seite geladen wird, werden die Konstanten myPics und context erstellt, um eine Referenz auf das Canvas und den 2D-Kontext zu speichern, den wir zum Zeichnen verwenden werden.

Das Zeichnen beginnt, wenn das mousedown-Ereignis ausgelöst wird. Zuerst speichern wir die X- und Y-Koordinaten des Mauszeigers in den Variablen x und y und setzen dann isDrawing auf true.

Während die Maus sich über die Seite bewegt, wird das mousemove-Ereignis ausgelöst. Wenn isDrawing wahr ist, ruft der Ereignis-Handler die drawLine-Funktion auf, um eine Linie von den gespeicherten x- und y-Werten zur aktuellen Position zu zeichnen.

Wenn die Funktion drawLine() zurückkehrt, passen wir die Koordinaten an und speichern sie dann in x und y.

Das mouseup-Ereignis zeichnet das letzte Liniensegment, setzt x und y auf 0 und stoppt weiteres Zeichnen, indem es isDrawing auf false setzt.

HTML

html
<h1>Drawing with mouse events</h1>
<canvas id="myPics" width="560" height="360"></canvas>

CSS

css
canvas {
  border: 1px solid black;
  width: 560px;
  height: 360px;
}

JavaScript

js
// When true, moving the mouse draws on the canvas
let isDrawing = false;
let x = 0;
let y = 0;

const myPics = document.getElementById("myPics");
const context = myPics.getContext("2d");

// event.offsetX, event.offsetY gives the (x,y) offset from the edge of the canvas.

// Add the event listeners for mousedown, mousemove, and mouseup
myPics.addEventListener("mousedown", (e) => {
  x = e.offsetX;
  y = e.offsetY;
  isDrawing = true;
});

myPics.addEventListener("mousemove", (e) => {
  if (isDrawing) {
    drawLine(context, x, y, e.offsetX, e.offsetY);
    x = e.offsetX;
    y = e.offsetY;
  }
});

window.addEventListener("mouseup", (e) => {
  if (isDrawing) {
    drawLine(context, x, y, e.offsetX, e.offsetY);
    x = 0;
    y = 0;
    isDrawing = false;
  }
});

function drawLine(context, x1, y1, x2, y2) {
  context.beginPath();
  context.strokeStyle = "black";
  context.lineWidth = 1;
  context.moveTo(x1, y1);
  context.lineTo(x2, y2);
  context.stroke();
  context.closePath();
}

Ergebnis

Spezifikationen

Specification
UI Events
# event-type-mousemove
HTML
# handler-onmousemove

Browser-Kompatibilität

Siehe auch