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 auf 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 in sehr hoher Frequenz auftreten, abhängig davon, wie schnell der Benutzer die Maus bewegt, wie schnell die Maschine ist, welche anderen Aufgaben und Prozesse durchgeführt werden, etc.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("mousemove", (event) => { })
onmousemove = (event) => { }
Ereignistyp
Ein MouseEvent. Erbt von UIEvent und Event.
Ereigniseigenschaften
Diese Schnittstelle erbt auch Eigenschaften ihrer Eltern, UIEvent und Event.
MouseEvent.altKeySchreibgeschützt-
Gibt
truezurück, wenn die alt-Taste gedrückt war, als das Mausereignis ausgelöst wurde. -
Die Nummer der Taste, die gedrückt wurde (falls zutreffend), als das Mausereignis ausgelöst wurde.
-
Die Tasten, die gedrückt wurden (falls vorhanden), als das Mausereignis ausgelöst wurde.
MouseEvent.clientXSchreibgeschützt-
Die X-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.clientYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers in Viewport-Koordinaten.
MouseEvent.ctrlKeySchreibgeschützt-
Gibt
truezurück, wenn die control-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.layerXNicht standardisiert Schreibgeschützt-
Gibt die horizontale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.
MouseEvent.layerYNicht standardisiert Schreibgeschützt-
Gibt die vertikale Koordinate des Ereignisses relativ zur aktuellen Ebene zurück.
MouseEvent.metaKeySchreibgeschützt-
Gibt
truezurück, wenn die meta-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.movementXSchreibgeschützt-
Die X-Koordinate des Mauszeigers relativ zur Position des letzten
mousemove-Ereignisses. MouseEvent.movementYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zur Position des letzten
mousemove-Ereignisses. MouseEvent.offsetXSchreibgeschützt-
Die X-Koordinate des Mauszeigers relativ zur Position der Polsterkante des Zielknotens.
MouseEvent.offsetYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zur Position der Polsterkante des Zielknotens.
MouseEvent.pageXSchreibgeschützt-
Die X-Koordinate des Mauszeigers relativ zum gesamten Dokument.
MouseEvent.pageYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zum gesamten Dokument.
-
Das sekundäre Ziel des Ereignisses, falls vorhanden.
MouseEvent.screenXSchreibgeschützt-
Die X-Koordinate des Mauszeigers in Bildschirmkoordinaten.
MouseEvent.screenYSchreibgeschützt-
Die Y-Koordinate des Mauszeigers in Bildschirmkoordinaten.
MouseEvent.shiftKeySchreibgeschützt-
Gibt
truezurück, wenn die shift-Taste gedrückt war, als das Mausereignis ausgelöst wurde. MouseEvent.mozInputSourceNicht standardisiert Schreibgeschützt-
Der Typ des Geräts, das das Ereignis generiert hat (eines der
MOZ_SOURCE_*Konstanten). Dies lässt Sie zum Beispiel feststellen, ob ein Mausereignis durch eine tatsächliche Maus oder durch ein Touch-Ereignis generiert wurde (was die Genauigkeit, mit der Sie die dem Ereignis zugeordneten Koordinaten interpretieren, beeinflussen kann). MouseEvent.webkitForceNicht standardisiert Schreibgeschützt-
Der aufgebrachte Druck beim Klicken.
MouseEvent.xSchreibgeschützt-
Alias für
MouseEvent.clientX. MouseEvent.ySchreibgeschü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 Dicke der Linie wird 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. Zunächst 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 bewegt wird, 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 das weitere Zeichnen, indem isDrawing auf false gesetzt wird.
HTML
<h1>Drawing with mouse events</h1>
<canvas id="myPics" width="560" height="360"></canvas>
CSS
canvas {
border: 1px solid black;
width: 560px;
height: 360px;
}
JavaScript
// 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
Loading…