Samuel Vogel: Position eines Bildes auslesen

Hallo,

Ich habe ein Problem, wenn ich mit JS die Position eines Bildes auszulesen.

Hier mein Bild:
<a href="" id="insel_button1" onmouseover="show_menu('insel_info1', 'insel_button1', 'left');" onmouseout="hide_menu('insel_info1');">
<img src="./images/karte/insel1.png" style="position: absolute; top: 148px; left: 168px;" alt="Insel Bild">
</a>

und das JS:
function show_menu (menu_id, button, position) {
  var x, y;

if(position = "bottom" ) {
    x = document.getElementById(button).offsetLeft;
    y = document.getElementById(button).offsetTop + document.getElementById(button).offsetHeight;
  }
  if(position = "left" ) {
    x = document.getElementById(button).offsetLeft + document.getElementById(button).offsetWidth;
    y = document.getElementById(button).offsetTop;
  }

document.getElementById(menu_id).style.visibility = "visible";
  document.getElementById(menu_id).style.left = x;
  document.getElementById(menu_id).style.top  = y;
}

So jetzt wenn das Bild _nicht_ mit style positioniert wurde geht es super! Aber wenn ich es mit CSS positioniere dann geht es nicht mehr!

Ich versteh es nicht!

mfg samy,

  1. Hallo,

    schau Dir mal mitte </archiv/2004/4/79429/#m460179> an

    Gruß aus Berlin!
    eddi

    1. schau Dir mal mitte </archiv/2004/4/79429/#m460179> an

      Argl, das ist nur teilweise richtig.

      eine Funktion um die Position eines Layers zu erhalten:

      function getPos(id)
      {
          if(!id) return null;
          var pos = {left:0, top:0};

      var obj = document.getElementById ? document.getElementById(id) :
          document.all ? document.all[id] : document.layers ? document.layers[id]: null;

      if(!obj) return null;

      if(obj.offsetLeft)
          {
               while (obj)
               {
                   pos.left += obj.offsetLeft;
                   pos.top += obj.offsetTop;
                   obj = obj.offsetParent;
               }
          }
          else
          {
              pos.left = obj.pageX;
              pos.top = obj.pageY;
          }
          return pos;
      }

      Struppi.