mausposition im IE und Firefox - unterschiedlich
kai
- javascript
0 Gernot Back0 Struppi
hallo,
ich habe einen mouseover-effekt auf einer imagemap.
es wird eine ebene eingeblendet und an die position der maus verschoben.
soweit klappt das auch im Firefox aber im IE ist das ganze immer um einiges nach links und oben versetzt .. habe mir ne box gemacht die
die mausposition ausgeben soll.
da kommt beim ie immer kleiner zahlenwerte raus..
zur ansicht:
http://game2.ipx10913.ipxserver.de/
login: dasuwi
passw: pass
danke schonmal
kai
Hallo kai,
habe mir ne box gemacht die
die mausposition ausgeben soll.
da kommt beim ie immer kleiner zahlenwerte raus..
Das ist mir auch unlängst aufgefallen. Der IE ist einfach total verrückt: Wenn man sich z.B. die Mauskoordinaten onmouseover auf der gesamten Dokumentfläche per Alert ausgeben lässt, dann kommen, wenn man ganz langsam mit der Maus vom Fensterrand oben oder links aus in den Body-Bereich hineinfährt, sogar erst einmal negative Werte um die -1/-2 heraus.
So ist unser IE nun mal, mach dir nichts draus, damit musst du im wahrsten Sinne des Wortes beim IE einfach _rechnen_!
Gruß Gernot
Das ist mir auch unlängst aufgefallen. Der IE ist einfach total verrückt: Wenn man sich z.B. die Mauskoordinaten onmouseover auf der gesamten Dokumentfläche per Alert ausgeben lässt, dann kommen, wenn man ganz langsam mit der Maus vom Fensterrand oben oder links aus in den Body-Bereich hineinfährt, sogar erst einmal negative Werte um die -1/-2 heraus.
Du benutzt offsetX/Y, mit clientX/Y geht's besser:
var M_POS = new Object();
document.onmousemove = function(e)
{
M_POS = mouse_pos(e);
}
function mouse_pos(evt)
{
if(!evt) evt = window.event;
var pos = new Object();
pos.left = evt.clientX;
pos.top = evt.clientY;
var b = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?
window.document.documentElement : window.document.body || null;
if (b)
{
pos.scrollLeft= pos.left + b.scrollLeft;
pos.scrollTop = pos.top + b.scrollTop;
}
else if(document.layers)
{
// Netscape 4.
pos.scrollLeft = evt.pageX;
pos.scrollTop = evt.pageY;
pos.left = evt.pageX - window.pageXOffset;
pos.top = evt.pageY - window.pageYOffset;
}
return pos;
}
Gibt bei mir keine negativen Werte.
Struppi.