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 schreibgeschützte Eigenschaft pageX des MouseEvent-Interfaces gibt die X-Koordinate (horizontal) in Pixeln an, bei der die Maus im Verhältnis zum linken Rand des gesamten Dokuments geklickt wurde. Dies umfasst auch alle Teile des Dokuments, die derzeit nicht sichtbar sind.

Da diese Eigenschaft auf dem Rand des Dokuments basiert, berücksichtigt sie jede horizontale Bildlaufbewegung der Seite. Zum Beispiel, wenn die Seite so gescrollt ist, dass 200 Pixel der linken Seite des Dokuments außer Sicht sind und die Maus 100 Pixel vom linken Rand der Ansicht geklickt wird, beträgt der von pageX zurückgegebene Wert 300.

Ursprünglich wurde diese Eigenschaft als long-Integer definiert. Das CSSOM View-Modul hat sie als double-Float neu definiert. Siehe den Abschnitt Browser-Kompatibilität für Details.

Siehe Koordinatensysteme für weitere Informationen über auf diese Weise spezifizierte Koordinaten.

Wert

Eine double-Gleitkommazahl von Pixeln vom linken Rand des Dokuments, bei dem die Maus geklickt wurde, unabhängig von jeglichem Scrollen oder der Positionierung des Ansichtsfensters, das möglicherweise in Kraft ist.

Diese Eigenschaft wurde ursprünglich in der Touch Events-Spezifikation als langes Integer spezifiziert, aber im CSSOM View-Modul zu einer doppelt-genauen Gleitkommazahl umdefiniert, um Subpixel-Genauigkeit zu ermöglichen. Obwohl beide numerischen Typen in JavaScript als Number dargestellt werden, können sie intern im Code des Browsers unterschiedlich behandelt werden, was zu potenziellen Verhaltensunterschieden führen kann.

Siehe Browser-Kompatibilität, um herauszufinden, welche Browser auf den überarbeiteten Datentyp aktualisiert wurden.

Beispiele

Anzeige der Mausposition relativ zum Seitenursprung

Betrachten Sie ein Beispiel, das Ihnen die Mausposition relativ zum Ursprungsort der Seite zeigt. Da dieses Beispiel in einem <iframe> präsentiert wird, ist diese 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 für Mausereignisse achten werden, hat die Klasse "box". Es enthält zwei <span>-Elemente, eines mit der ID "x" und eines mit der ID "y". Diese werden bei jedem Auftreten eines Ereignisses aktualisiert, um die neuesten Mauskoordinaten relativ zur Seite zu enthalten.

CSS

Das für dieses Beispiel verwendete CSS wird unten gezeigt.

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() zur Registrierung der Funktion updateDisplay() als Ereignishandler für die Ereignisse mousemove, mouseenter und mouseleave.

updateDisplay() ersetzt den Inhalt der für das Halten der X- und Y-Koordinaten vorgesehenen <span>-Elemente mit den Werten von pageX und pageY.

Ergebnis

Probieren Sie es hier aus:

Weitere Beispiele

Sie können auch ein Beispiel sehen, das zeigt, wie der Zugriff auf die Mausposition in jedem verfügbaren Koordinatensystem funktioniert.

Spezifikationen

Specification
CSSOM View Module
# dom-mouseevent-pagex

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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch