Heim Web-Frontend js-Tutorial Zusammenfassung des Erhaltens mauspositionsbezogener Attribute in JavaScript_Javascript-Kenntnissen

Zusammenfassung des Erhaltens mauspositionsbezogener Attribute in JavaScript_Javascript-Kenntnissen

May 16, 2016 pm 04:34 PM
javascript 属性

Javascript verfügt über kein Mausobjekt. Das Abrufen von Mauskoordinaten hängt vom leistungsstarken Ereignisobjekt ab.

Durch die Überwachung der Mausbewegung des Dokuments können wir die Mausposition in Echtzeit ermitteln.

Aber! ! Das Ereignis enthält zu viele mausbezogene Attribute, was sehr verwirrend ist! Wie folgt:

event.layerX event.layerY
event.clientX event.clientY
event.pageX event.pageY
event.offsetX event.offsetY
event.screenX event.screenY
event.x event.y

Insgesamt 6 Gruppen!

Und der Unterschied zwischen ihnen ist nicht offensichtlich und die Browser sind nicht kompatibel!

Der Zweck dieses Artikels besteht darin, die Unterschiede zu verdeutlichen und diejenigen auszuwählen, die nicht empfohlen werden.

Testcode

Führen Sie den folgenden Code direkt aus:

Code kopieren Der Code lautet wie folgt:



http://www.w3.org/1999/xhtml"> />




Körper {position:relative;}
div {min-height: 300px; Hintergrundfarbe: #eee;}
#jg {rechts: 0; oben: 10px; Position: fest; Hintergrundfarbe: #f00;}





Ergebnisse anzeigen


In-Screen div

Groß und breit. . .

off-screen DIV



<script><br> var jg = document.getElementById('jg');<br> document.onmousemove = Funktion (e) {<br> e = e ||. window.event;<br> jg.innerHTML = 'layerX:' e.layerX <br> ',layerY:' e.layerY <br> ', <br/>clientX:' e.clientX <br> ',clientY:' e.clientY <br> ', <br/>pageX:' e.pageX <br> ',pageY :' e.pageY <br> ',<br/>offsetX:' e.offsetX <br> ',offsetY:' e.offsetY <br> ',<br/>screenX:' e.screenX <br> ',screenY:' e.screenY <br> ',<br/>x:' e.x <br> ',y:' e.y;<br> }<br> </script>


Während des Testprozesses wurde ein Artefakt entdeckt: Chrome (Google-Browser) und IE9 sind mit allen oben genannten Attributen vollständig kompatibel! Es ist sehr praktisch, sie zu vergleichen.

Nach dem Vergleich sind die Ergebnisse wie folgt:

Erklärung jedes Attributs

clientX und Y sind die Koordinaten der Maus relativ zum Browser-Ansichtsfenster (d. h. der Teil außerhalb der Bildlaufleiste wird von allen Browsern unterstützt).

ScreenX und Y sind die Koordinaten der Maus relativ zur linken Seite (oberer Rand) des gesamten Bildschirms. Sie haben grundsätzlich keinen Kontakt zum Dokument und sind vollständig kompatibel.

OffsetX und Y sind die Koordinaten der Maus relativ zum aktuell gezeigten Objekt. Wenn die Maus auf die Schaltfläche zeigt, wird OffsetX relativ zur Schaltfläche nicht unterstützt

x und y sind dieselben wie LayerX und Y in Standardbrowsern. Es handelt sich um Attribute, die zum Ersetzen von LayerX im IE verwendet werden können

pageX und Y sind die Koordinaten der Maus relativ zur linken Seite (oberer Rand) der gesamten Seite, einschließlich derjenigen außerhalb des Ansichtsfensters. IE7 und 8 unterstützen sie nicht.

Wichtige Punkte: LayerX und LayerY

LayerX und Y sind neue Attribute, die von Standardbrowsern eingeführt werden und auch von IE9 unterstützt werden. Es kann verwendet werden, um OffsetX und Y zu ersetzen. Es ist jedoch definiert als: die Koordinaten des nächstgelegenen Elements mit Positionierungsinformationen relativ zum aktuell zeigenden Element. Dieses „mit Positionierung“ bedeutet, dass es CSS-Attribute gibt, die nicht standardmäßig positioniert sind (dh nicht statisch).

Wenn das aktuell angezeigte Element positioniert ist, geben LayerX und Y die Koordinaten relativ zu diesem Element zurück. Wenn es noch keine Positionierung gibt, fahren Sie fort —— HTML-Knoten.

Wenn Sie also in Firefox den OffsetX-Wert möchten, müssen Sie Positionsinformationen hinzufügen!

Kompatibilitätsübersicht:

1. Firefox unterstützt die Attribute offsetX, offsetY und x, y, sie können jedoch durch layerX ersetzt werden 2. x und y in dh entsprechen LayerX und LayerY in Firefox&chrome; 3. Zwischen der Dokumentgrenze von IE7 und 8 und der Browserfenstergrenze besteht ein Abstand von 2 Pixeln. Wenn das Fenster maximiert ist, beträgt der minimale Bildschirm X 2 Pixel 4. Obwohl die Werte „layerX“ und „Y“ in ie9 aus unerklärlichen Gründen falsch sind, scheinen sie mit dem HTML-Tag zusammenzuhängen. Ziehen Sie beispielsweise im Code meines Beispiels die Bildlaufleiste ganz nach rechts und bewegen Sie die Maus langsam davon der Leerraum zum großen DIV. Zu diesem Zeitpunkt wird auch die Differenz zwischen dem äußersten rechten Teil des großen DIV und dem äußersten rechten Teil des ersten DIV in LayerX berechnet. . . Da es am Ende immer mehr Elemente gibt, wird diese Berechnung komplizierter; Firefox und Chromes LayerX haben dieses Problem jedoch nicht. Verwenden Sie LayerX also nicht in IE9.

5. In Chrome haben x und y zwar Werte, sind aber genau die gleichen wie clientX und Y! Daher wird die Verwendung von XY-Attributen nicht empfohlen.


Kompatibilitätskorrektur

In Standardbrowsern können position und event.layerX verwendet werden, um das Attribut event.offsetX zu implementieren In IE7 und 8 gibt es kein pageX, pageY. Sie können es nur mit document.documentElement.scrollLeft event.clientX finden.

So kann entweder x, y oder offsetX, offsetY im IE entfernt werden.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Bottom-Attributsyntax in CSS Bottom-Attributsyntax in CSS Feb 21, 2024 pm 03:30 PM

Syntax und Codebeispiele für das Bottom-Attribut in CSS In CSS wird das Bottom-Attribut verwendet, um den Abstand zwischen einem Element und dem Boden des Containers anzugeben. Es steuert die Position eines Elements relativ zum unteren Rand seines übergeordneten Elements. Die Syntax des unteren Attributs lautet wie folgt: element{bottom:value;} wobei element das Element darstellt, auf das der Stil angewendet werden soll, und value den festzulegenden unteren Wert darstellt. Der Wert kann ein bestimmter Längenwert sein, z. B. Pixel

Einführung in die Eigenschaften von Hearthstones Despair Thread Einführung in die Eigenschaften von Hearthstones Despair Thread Mar 20, 2024 pm 10:36 PM

Thread of Despair ist eine seltene Karte in Blizzard Entertainments Meisterwerk „Hearthstone“ und kann im Kartenpaket „Wizbane's Workshop“ erhalten werden. Kann 100/400 arkane Staubpunkte verbrauchen, um die Normal-/Goldversion zu synthetisieren. Einführung in die Eigenschaften von Hearthstones Faden der Verzweiflung: Er kann mit einer Chance in Wizbanes Werkstattkartenpaket erhalten oder auch durch arkanen Staub synthetisiert werden. Seltenheit: Selten Typ: Zauber Klasse: Todesritter Mana: 1 Wirkung: Verleiht allen Dienern ein Todesröcheln: Fügt allen Dienern 1 Schaden zu

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Feb 29, 2024 am 09:03 AM

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wenn Sie jQuery zum Betreiben von DOM-Elementen verwenden, stoßen Sie häufig auf Situationen, in denen Sie feststellen müssen, ob ein Element ein bestimmtes Attribut hat. In diesem Fall können wir diese Funktion einfach mit Hilfe der von jQuery bereitgestellten Methoden implementieren. Im Folgenden werden zwei häufig verwendete Methoden vorgestellt, um festzustellen, ob ein jQuery-Element über bestimmte Attribute verfügt, und um spezifische Codebeispiele anzuhängen. Methode 1: Verwenden Sie die Methode attr() und den Operator typeof //, um zu bestimmen, ob das Element ein bestimmtes Attribut hat

See all articles