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 pageX-Eigenschaft des MouseEvent-Interfaces gibt die X-Koordinate (horizontal) in Pixeln zurück, an der die Maus relativ zum linken Rand des gesamten Dokuments geklickt wurde. Dies schließt jeden nicht sichtbar Bereich des Dokuments ein.

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

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

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

Wert

Ein double Gleitkommazahl der Pixel vom linken Rand des Dokuments, an dem die Maus geklickt wurde, unabhängig von Scrollen oder Ansichtsfensterpositionierung, die möglicherweise in Kraft sind.

Diese Eigenschaft wurde ursprünglich in der Touch-Events-Spezifikation als langes Integer spezifiziert, aber im CSSOM View Module wurde sie als Double-Precision-Gleitkommazahl neu definiert, um Subpixel-Präzision zu ermöglichen. Auch wenn numerische Typen beide als Number in JavaScript repräsentiert werden, könnten sie intern im Browercode unterschiedlich gehandhabt werden, was zu möglichen Verhaltensunterschieden führen kann.

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

Beispiele

Anzeige der Mausposition relativ zum Seitenursprung

Schauen wir uns ein einfaches 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 linke obere 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 gehalten; die Box, auf die wir für Mausereignisse achten werden, hat die Klasse "box". Sie 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

Die in diesem Beispiel verwendeten CSS sind 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(), um die Funktion updateDisplay() als Ereignishandler für die mousemove, mouseenter und mouseleave Ereignisse zu registrieren.

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

Ergebnis

Probieren Sie es hier aus:

Weitere Beispiele

Spezifikationen

Specification
CSSOM View Module
# dom-mouseevent-pagex

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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch