MouseEvent: pageX-Eigenschaft

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.

Die pageX Schreibgeschützte Eigenschaft des MouseEvent-Interfaces gibt die X-Koordinate (horizontal) in Pixel an, an der die Maus relativ zum linken Rand des gesamten Dokuments geklickt wurde. Dies schließt alle derzeit nicht sichtbaren Teile des Dokuments ein.

Da diese Eigenschaft auf dem Rand des Dokuments basiert, berücksichtigt sie jegliches horizontale Scrollen der Seite. Wenn die Seite beispielsweise so gescrollt ist, dass 200 Pixel des linken Teils des Dokuments aus dem Sichtfeld herausgescrollt sind und die Maus 100 Pixel vom linken Rand des Ansichtspunktes entfernt geklickt wird, beträgt der von pageX zurückgegebene Wert 300.

Ursprünglich war diese Eigenschaft als long Integer definiert. Das CSSOM View Module hat sie als double Gleitkommawert neu definiert. Siehe den Abschnitt Browser-Kompatibilität für Einzelheiten.

Weitere Informationen zu auf diese Weise angegebenen Koordinaten finden Sie unter Koordinatensysteme.

Wert

Eine double Gleitkommazahl, die die Anzahl der Pixel vom linken Rand des Dokuments angibt, an dem die Maus geklickt wurde, unabhängig von Scrollen oder der Positionierung im Ansichtsfenster, die möglicherweise aktiv ist.

Diese Eigenschaft wurde ursprünglich in der Touch Events-Spezifikation als langes Integer festgelegt, aber im CSSOM View Module zu einer Gleitkommazahl mit doppelter Genauigkeit umdefiniert, um Subpixelpräzision zu ermöglichen. Obwohl beide Zahlentypen in JavaScript durch Number dargestellt werden, können sie intern im Code des Browsers unterschiedlich behandelt werden, was zu potenziellen Verhaltensunterschieden führen kann.

Unter Browser-Kompatibilität erfahren Sie, welche Browser aktualisiert wurden, um den überarbeiteten Datentyp zu verwenden.

Beispiele

Anzeige der Mausposition relativ zum Seitenursprung

Schauen wir uns ein Beispiel an, das Ihnen die Position der Maus relativ zum Ursprung der Seite zeigt. Da dieses Beispiel in einem <iframe> präsentiert wird, ist die obere linke Ecke die obere linke Ecke des Rahmens, nicht des Browserfensters.

HTML

html
<div class="box">
  <p>Move the mouse around in this box to watch its coordinates change.</p>
  <p><code>pageX</code>: <span id="x">n/a</span></p>
  <p><code>pageY</code>: <span id="y">n/a</span></p>
</div>

Das HTML ist einfach; das Kästchen, auf das wir Mausereignisse beobachten werden, hat die Klasse "box". Es hat zwei <span>-Elemente, eines mit der ID "x" und eines mit der ID "y". Diese werden jedes Mal, wenn ein Ereignis auftritt, aktualisiert, um die neuesten Mauskoordinaten relativ zur Seite zu enthalten.

CSS

Nachfolgend ist das für dieses Beispiel verwendete CSS dargestellt.

css
.box {
  width: 400px;
  height: 250px;
  border: 2px solid darkblue;
  background-color: blue;
  color: white;
  font:
    16px "Zilla",
    "Open Sans",
    "Helvetica",
    "Arial",
    sans-serif;
}

JavaScript

js
const box = document.querySelector(".box");
const pageX = document.getElementById("x");
const pageY = document.getElementById("y");

function updateDisplay(event) {
  pageX.innerText = event.pageX;
  pageY.innerText = event.pageY;
}

box.addEventListener("mousemove", updateDisplay, false);
box.addEventListener("mouseenter", updateDisplay, false);
box.addEventListener("mouseleave", updateDisplay, false);

Der JavaScript-Code verwendet addEventListener(), um die Funktion updateDisplay() als Ereignis-Handler für die mousemove, mouseenter und mouseleave-Ereignisse zu registrieren.

updateDisplay() ersetzt den Inhalt der <span>-Elemente, die X- und Y-Koordinaten enthalten sollen, durch die Werte von pageX und pageY.

Ergebnis

Probieren Sie es hier aus:

Weitere Beispiele

Sie können auch ein Beispiel ansehen, das zeigt, wie Sie die Mausposition abrufen können, um Informationen in jedem verfügbaren Koordinatensystem zu erhalten.

Spezifikationen

Specification
CSSOM View Module
# dom-mouseevent-pagex

Bevor pageX und pageY zur CSSOM View-Spezifikation hinzugefügt wurden, waren sie auf dem UIEvent-Interface in einem begrenzten Teilmengen von Browsern für kurze Zeit verfügbar.

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch