Mauszeigerposition auslesen in Mozilla/Netscape
Benni
- javascript
0 Gunther0 Henryk Plötz
Hallo Zusammen!
Ich müsste die Mauszeigerposition bei aktuellen Mozilla und Netscape Browsern auslesen. Bekomm ich aber nicht hin.
Im IE funktioniert alles Problemlos.
Kann mir jemand die Browserspezifischen Befehle sagen?
Vielen Dank im Vorraus
Gruß Benni
Guck' mal hier http://selfhtml.teamone.de/javascript/objekte/event.htm
MfG
Gunther
Danke, bringt mich aber nicht weiter.
Möchte onmouseover ein Bild anzeigen lassen, das sich mit dem Mauszeiger(nur auf dem Bild) mitverschiebt.
Sieht so im IE aus.
function set_help_price() {
tempX = event.clientX + document.body.scrollLeft - 165;
tempY = event.clientY + document.body.scrollTop - 115;
document.getElementById('help_price').style.left = tempX;
document.getElementById('help_price').style.top = tempY;
document.getElementById('help_price').style.display ='block';
}
Hab versucht es umzuschreiben für NS/Mozilla funzt aber nicht.
Statt "clientX" hab ich "screenX" probiert.
Welchen Befehl frisst NS nicht?
Ups sorry!
Die Reply von Henryk hab ich garnicht gesehen.
Wow. Vielen Dank. Dann werd ich mal überprüfen...
Gruß Benni
Moin,
Im IE funktioniert alles Problemlos.
Kann mir jemand die Browserspezifischen Befehle sagen?
Browserspezifische Befehle gibt es nicht mehr, Mozilla implementiert dafür DOM ziemlich gut (das kriegt der IE leider nicht auf die Reihe). Die entsprechende Beschreibung in Selfhtml liegt unter http://selfhtml.teamone.de/dhtml/modelle/dom.htm#event_handling ist aber bedauerlicherweise noch wenig umfangreich und in mindestens einem Punkt falsch (der dritte Parameter von addEventListener legt fest, ob der Listener in den Bubbling-Phase oder in der Capture-Phase aktiv sein soll), so dass du im Zweifelsfall mit der original-DOM-Spezifikation zu DOM Level 2 Events besser beraten bist: http://www.w3.org/TR/DOM-Level-2-Events/.
Die Kurzform:
a) Du prüfst ab, ob der Browser DOM kennt (mit if(document.getElementById)).
b) Falls ja, prüfst du ob der Browser dir die DOMImplementation wie in DOM Level 2 definiert zur Verfügung stellt (mit if(document.implementation)).
c) Falls ja, prüfst du ab, ob der Browser das Mouse Events-Modul von DOM Level 2 kennt (mit if(document.implementation.hasFeature("MouseEvents", "2.0"))).
d) Falls ja registrierst du einen EventListener für document der für mousemove-Events in der Capture-Phase aufgerufen wird (mit document.addEventListener("mousemove", meinefunktion, true); wobei meinefunktion genau einen Parameter nehmen muß, in den später das Event-Objekt geschrieben wird).
e) Auf allen User Agents die DOM Level 2 Events kennen wird jetzt (zumindest wenn der Benutzer das nicht unterdrückt ;) deine Funktion meinefunktion aufgerufen sobald die Maus im Dokument bewegt wird. Als erster Parameter wird ihr ein Event-Objekt übergeben, das unter anderem clientX, clientY, screenX und screenY als Eigenschaften hat, in denen die jeweiligen Pixelwerte für die aktuelle Mausposition stehen. Damit kannst du jetzt machen was du willst.
--
Henryk Plötz
Grüße aus Berlin