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 July 2015.

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

Syntax

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

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

onmousemove = (event) => {};

Ereignistyp

Ereigniseigenschaften

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

MouseEvent.altKey Nur lesbar

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

MouseEvent.button Nur lesbar

Die Nummer der Taste, die (falls zutreffend) beim Auslösen des Mausereignisses gedrückt wurde.

MouseEvent.buttons Nur lesbar

Die Tasten, die beim Auslösen des Mausereignisses gedrückt werden (falls vorhanden).

MouseEvent.clientX Nur lesbar

Die X-Koordinate des Mauszeigers in Ansichtsport-Koordinaten.

MouseEvent.clientY Nur lesbar

Die Y-Koordinate des Mauszeigers in Ansichtsport-Koordinaten.

MouseEvent.ctrlKey Nur lesbar

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

MouseEvent.layerX Nicht standardisiert Nur lesbar

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

MouseEvent.layerY Nicht standardisiert Nur lesbar

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

MouseEvent.metaKey Nur lesbar

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

MouseEvent.movementX Nur lesbar

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

MouseEvent.movementY Nur lesbar

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

MouseEvent.offsetX Nur lesbar

Die X-Koordinate des Mauszeigers relativ zur Position des Ränder-Rands des Zielknotens.

MouseEvent.offsetY Nur lesbar

Die Y-Koordinate des Mauszeigers relativ zur Position des Ränder-Rands des Zielknotens.

MouseEvent.pageX Nur lesbar

Die X-Koordinate des Mauszeigers relativ zum gesamten Dokument.

MouseEvent.pageY Nur lesbar

Die Y-Koordinate des Mauszeigers relativ zum gesamten Dokument.

MouseEvent.relatedTarget Nur lesbar

Das sekundäre Ziel des Ereignisses, falls vorhanden.

MouseEvent.screenX Nur lesbar

Die X-Koordinate des Mauszeigers in Bildschirm-Koordinaten.

MouseEvent.screenY Nur lesbar

Die Y-Koordinate des Mauszeigers in Bildschirm-Koordinaten.

MouseEvent.shiftKey Nur lesbar

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

MouseEvent.mozInputSource Nicht standardisiert Nur lesbar

Der Typ des Geräts, das das Ereignis erzeugt hat (einer der MOZ_SOURCE_*-Konstanten). Dadurch können Sie beispielsweise feststellen, ob ein Mausereignis von einer echten Maus oder einem Berührungsereignis erzeugt wurde (was die Genauigkeit beeinflussen könnte, mit der Sie die dem Ereignis zugeordneten Koordinaten interpretieren).

MouseEvent.webkitForce Nicht standardisiert Nur lesbar

Der Druck, der beim Klicken ausgeübt wird.

MouseEvent.x Nur lesbar

Alias für MouseEvent.clientX.

MouseEvent.y Nur lesbar

Alias für MouseEvent.clientY.

Beispiele

Das folgende Beispiel nutzt die mousedown-, mousemove- und mouseup-Ereignisse, um dem Benutzer das Zeichnen auf einer HTML-<canvas> zu ermöglichen. Seine Funktionalität ist einfach: Die Linienbreite wird auf 1 festgelegt, und die Farbe ist immer schwarz.

Wenn die Seite geladen wird, werden die Konstanten myPics und context erstellt, um eine Referenz auf die Leinwand 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.

Wenn die Maus über die Seite fährt, wird das mousemove-Ereignis ausgelöst. Wenn isDrawing true ist, ruft der Ereignishandler die Funktion drawLine auf, um eine Linie von den gespeicherten x- und y-Werten zur aktuellen Position zu zeichnen.

Wenn die drawLine()-Funktion 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 Standard
# handler-onmousemove

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch