Element: mousemove Ereignis
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 sich der Hotspot des Cursors innerhalb des Elements befindet.
Diese Ereignisse treten auf, unabhängig davon, ob Maustasten gedrückt sind oder nicht. Sie können in sehr hoher Rate ausgelöst werden, abhängig davon, wie schnell der Benutzer die Maus bewegt, wie schnell der Rechner ist, welche anderen Aufgaben und Prozesse laufen usw.
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.altKey
Schreibgeschützt-
Gibt
true
zurü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.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 Steuerung-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 Schicht zurück.
MouseEvent.layerY
Nicht standardisiert Schreibgeschützt-
Gibt die vertikale Koordinate des Ereignisses relativ zur aktuellen Schicht 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 Padding-Randes des Zielknotens.
MouseEvent.offsetY
Schreibgeschützt-
Die Y-Koordinate des Mauszeigers relativ zur Position des Padding-Randes 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.
-
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 (eines der
MOZ_SOURCE_*
Konstanten). Dies ermöglicht es Ihnen zum Beispiel festzustellen, ob ein Mausereignis von einer echten Maus oder durch ein Berührungsereignis erzeugt wurde (was die Genauigkeit, mit der Sie die den Ereignissen zugewiesenen Koordinaten interpretieren, beeinflussen könnte). MouseEvent.webkitForce
Nicht standardisiert Schreibgeschützt-
Der ausgeübte Druck beim Klicken.
MouseEvent.x
Schreibgeschützt-
Alias für
MouseEvent.clientX
. MouseEvent.y
Schreibgeschützt-
Alias für
MouseEvent.clientY
.
Beispiele
Das folgende Beispiel verwendet die Ereignisse mousedown
, mousemove
und mouseup
, um dem Benutzer das Zeichnen auf einem HTML-Canvas zu ermöglichen. Die 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.
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 über die Seite bewegt wird, wird das mousemove
-Ereignis ausgelöst. Wenn isDrawing
true ist, ruft der Ereignishandler die drawLine
-Funktion 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
<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 |