Pop-Up durch Mausklick bei aktueller Position

  • Hallo,
    bei einer Bildergalerie soll das jeweilige Bild durch anklicken in einem neuen Fenster vergrößert an genau der Stelle des Bildes erscheinen.

    Bislang öffnet sich das Pop-Up durch
    onclick="winLaunch('detail/0001.html','foto','foto','status=yes,width=400,height=280,left=250,top=200')"

    wobei die Werte bei left und top eben durch relative Werte ersetzt werden sollen. Dafür habe ich bereits die Funktion getRealPos.js entdeckt, die die Bildposition bezogen auf den Viewport ermittelt:

    function getRealPos (element) {
    var x = 0, y = 0, tmp_ele = element, pos;
    for ;) tmp_ele != null; x += element.offsetLeft, y += element.offsetTop, tmp_ele = tmp_ele.offsetParent) {
    pos = getRealPos.get_pos(tmp_ele);
    x -= parseInt(pos.x);
    y -= parseInt(pos.y);
    }
    return { x : x, y : y, w : element.offsetWidth, h : element.offsetHeight };
    }
    getRealPos.get_pos = document.defaultView ? function (obj) {
    var obj_style = obj.ownerDocument.defaultView.getComputedStyle(obj, null);
    return {
    x : obj_style.getPropertyValue("left"),
    y : obj_style.getPropertyValue("top")
    };
    } : document.currentStyle ? function (obj) {
    return {
    x : obj.currentStyle.left,
    y : obj.currentStyle.top
    };
    } : function (obj) {
    return {
    x : obj.style.left,
    y : obj.style.top
    };
    };


    getRealpos.js habe ich in der HTML-Seite bereits eingebunden. Kann mir jemand noch sagen, durch was ich die Zahlen bei left und top im onclick nun konkret ersetzen muss, um das gewünschte Ergebnis zu erhalten? Evtl. muss noch scrollHeight/scrollWidth abgezogen werden; geht das auch in der onclick-Zeile durch "+" oder "-" oder muss ich das direkt in der getRealPos-Funktion reinschreiben?
    Vielen Dank!

  • öhhm benutz doch einfach highslide.. das macht genau das was du willst und noch mehr

    Besten Dank, super Tip! Habe es schon ausprobiert und läuft super, dann brauche ich mich mit dem anderen Kram nicht mehr herumzuschlagen. :)