Struppi: Mouse-Position im Netscape/Moz

Beitrag lesen

Wenn das die Funktion ist die beim Mausevent auftriit musst du hier den Parameter holen:

function zoom() {

function zoom(evt) {

und dann entsprechend deiner calc Funktion weitergeben:

//-----------------ZoomIn------------------------------------
if((actpic==0) && (event.button==1)) {
    calc("D_3200",238,"1:3.200.000",true);

calc(evt, "D_3200",238,"1:3.200.000",true);

die in dieser Funktion aufgerufene calc()-Fkt. sieht bisher so aus:

function calc(name, px, imageUrl, zoomStep){

Hier seht es dann so aus:
function calc(evt, name, px, imageUrl, zoomStep){

x = evt ? evt.pageX : window.event.x + document.body.scrollLeft ;
y = evt ? evt.pageY : window.event.y + document.body.scrollTop;

Das Funktioniert übrigens im IE nicht immer. Da document.body nicht in jedem Modus gesetzt werden. Du brauchst für den IE 3 Varianten:

if(document.compatMode && document.compatMode == "BackCompat")
{
// IE 6 im Quirks-(BackCompat) Modus
_MOUSE_POS_.scrollLeft =  _MOUSE_POS_.left + document.body.scrollLeft;
_MOUSE_POS_.scrollTop = _MOUSE_POS_.top + document.body.scrollTop;
}
else if (document.compatMode && document.compatMode == "CSS1Compat") {
// IE 6 im CSS1Compat Modus
_MOUSE_POS_.scrollLeft =  _MOUSE_POS_.left + document.documentElement.scrollLeft;
_MOUSE_POS_.scrollTop = _MOUSE_POS_.top + document.documentElement.scrollTop;

}else if (document.body)
{
// IE < 6 (nicht sicher da ich nur den IE 4 hab)
_MOUSE_POS_.scrollLeft = _MOUSE_POS_.left + document.body.scrollLeft;
_MOUSE_POS_.scrollTop  = _MOUSE_POS_.top + document.body.scrollTop;
}

Struppi.