Javascript ist Toll!

FAQ > Javascript

10. Februar 2006 - 08:22

Wie finde ich die Mausposition?

Um die Mausposition mit Javascript zu ermitteln, kann man folgende Funktion verwenden.

javascript
function mouse_pos(e) {
	if(!e) e = window.event;
	var body = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ? 
	window.document.documentElement : window.document.body;
	return {
	// Position im Dokument
	top: e.pageY ? e.pageY : e.clientY + body.scrollTop - body.clientTop,
	left: e.pageX ? e.pageX : e.clientX + body.scrollLeft  - body.clientLeft
 
	};
}

Rückgabe:

.top / .left                - Position im Dokument

Beispiel

Das Beispiel zeigt die aktuelle Mausposition.

top / left: Koordinaten im Dokument

Javascript

Das Skript dazu sieht so aus:

javascript
var on = false;
function Start(e){
    if(on)   {
         window.document.onmousemove = null;
         e.value ='Start';
    }else  {
         window.document.onmousemove = showMousePos;
         e.value ='Stopp';
    }
    on = !on;
}
function showMousePos(e){
    var p = mouse_pos(e);
    for(var i in p)    {
        document.forms['maus_pos'].elements[i].value =  p[i];
    }
}

HTML

und der HTML Code dazu (nur das Formular):

html
<form action="#" name="maus_pos">
<input type="text" name="top" size="3">
<input type="text" name="left" size="3">
<input type="text" name="scrollTop" size="3">
<input type="text" name="scrollLeft" size="3">
<input type="button" value="Start" onclick="Start(this);">
</form>
Comments (7)
11453 mal gelesen.

7 Kommentare Einen Kommentar hinterlassen »

Kommentare

1. Kommentar von johannes
Sonntag 23.März 2008: 2:47

Hallo für mich ist nicht einsehbar wofür man die Mausposition braucht. Ist das um in einem eingebetten Bild oder an einer Textstelle die nötige Pixelzahl von oben und von der Seite zu erhalten, um dort einen tooltipp oder onmouse Befehl zu positionieren? Mhm, wäre schön eine Antwort zu erhalten. Mfg, Johannes T.

2. Kommentar von Stefan
Samstag 5.April 2008: 9:50

Genau das hab ich gesucht!!!!!!! Danke!!

Da ich zwar im Mozilla über pageX usw. Die relative Pos. der Mouse vom Doc bestimmen konnte das aber nicht mit dem IE funktioniert hat. Aber mit dem script klappt es.

Also weiter so super sache ;-)

3. Kommentar von Helferlein
Mittwoch 20.August 2008: 2:15

Im Gegensatz zu Johannes wüsste ich ein paar Beispiele, wofür man die Mausposition braucht...
Aber egal. Was mir aufgefallen ist, dass im MS IE die Mausposition nicht mit der Position im Dokument übereinstimmt!? Irgendwie ist sie 2 Pixel daneben. Versuch doch mal, die linke-oberste weiße Ecke im Dokument anzuklicken. Kann man das irgendwie sinnvoll abfangen?
evt.pageX und Y liefern bei den anderen Browsern vernünftige Werte.

Gruss
H.

4. Kommentar von tafy
Donnerstag 12.März 2009: 10:18

nettes script, leider ist der code oben falsch, was im IE zu problemen führt !

im return darf hinter "body.clientLeft" KEIN Komma stehen.

return {
// Position im Dokument
top: e.pageY ? e.pageY : e.clientY + body.scrollTop - body.clientTop,
left: e.pageX ? e.pageX : e.clientX + body.scrollLeft - body.clientLeft,

};

5. Kommentar von Struppi
Donnerstag 12.März 2009: 13:12

Nur im IE, aber du hast natürlich vom Prinzip her recht. Ich hab's geändert, Danke.

6. Kommentar von Stefan L.
Montag 12.Oktober 2009: 19:34

Super, vielen dank^^

Ich brauche die Position des Mauszeigers z.B. für mein neues Browsergame, an dem ich gerade Programmiere.

@Johannes
Du fragst für was man die Mauszeigerposition brauchen könnte? Das meinst du doch nicht ernst? Für was braucht man Formulare? Für was eine ermittlung welche Taste man drückt? Um mit dem Benutzer der seite Interagieren zu können natürlich!!! Aber wenn der kein Hirn hat wie in deinem Fall, dann braucht man die Position natürlich nicht, den dann ist klar das du nichts damit anfangen kannst.

Gruss
Stefan

7. Kommentar von Tim Ruls
Mittwoch 28.Juli 2010: 13:05

Auch danke von mir.
@Johannes: Ein paar Anwendungsbeispiele: Drag'n'Drop, Fenster zeiehen, wie bei Windows aufm Desktop, ...

Einen Kommentar hinterlassen

Name (erforderlich)
Mail (wird nicht angezeigt) (erforderlich)
Website


Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot
rats-wonderful
rats-wonderful
rats-wonderful
rats-wonderful Browser-Statistiken