flashnfantasy: absolute Position von HTML-Elementen ermitteln.

Folgendes Problem:

Irgendwo auf der Seite ist ein HTML-Element (kann eine Grafik oder sonstiges sein), bei dem bei einem MouseOver eine eigenes Kontextmenü erscheinen soll.

Nun suche ich die absolute Position dieses Elementes für eine Layer, die ich dann mit dem Positions-Stil 'absolut' dort aufklappen will.

Die hier öfters vorgeschlagenen Lösungen für Klappmenüs haben mich nicht weitergebracht...

Ich habe aber folgendes inzwischen rausgekriegt: summiert man alle offsets der ParentElements bis hin zum BODY-Tag, dann kriegt man anscheinend die Position. Das sähe dann folgendermaßen aus:

var tNode = target;
      var xPos = 0;
      var yPos = 0;
      while (tNode.nodeName != "BODY")
      {
         xPos += tNode.offsetLeft;
         yPos += tNode.offsetTop;
         tNode = tNode.offsetParent;

}
      flying_div = flyer;
      flyer.style.display = "";
      flyer.style.position = "absolute";
      flyer.style.left = (xPos-30) + "px";
      flyer.style.top = (yPos+10) + "px";

Nun meine Frage:
Ist das so eine brauchbare Lösung ? Gibt es was besseres ?

  1. Hallo flashnfantasy,

    Ist das so eine brauchbare Lösung ? Gibt es was besseres ?

    Ich denke, das ist teilweise sehr ähnlich:

    http://forum.de.selfhtml.org/archiv/2005/5/t108512/

    Gruß Gernot

  2. Liebe(r) flashnfantasy,

    Irgendwo auf der Seite ist ein HTML-Element (kann eine Grafik oder sonstiges sein), bei dem bei einem MouseOver eine eigenes Kontextmenü erscheinen soll.

    Also ein mouseOver-Event feuert, sodass Dein Kontext-Menü auftaucht.

    Nun suche ich die absolute Position dieses Elementes für eine Layer, die ich dann mit dem Positions-Stil 'absolut' dort aufklappen will.

    Wozu denn die Position des Elements? Nimm doch die Mauskoordinaten! Die bekommst Du doch frei Haus! Passt zu einem Kontextmenü auch irgendwie besser, oder?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Nun suche ich die absolute Position dieses Elementes für eine Layer, die ich dann mit dem Positions-Stil 'absolut' dort aufklappen will.
      Wozu denn die Position des Elements? Nimm doch die Mauskoordinaten! Die bekommst Du doch frei Haus! Passt zu einem Kontextmenü auch irgendwie besser, oder?

      Habe das mit den Mauskoordinaten versucht - das Problem ist eher pragmatischer Natur:

      Die Elemente kriegen erst durch einen JavaScript ihren Eventhandler.

      Die Funktion des Eventhandlers muß aber 'unary' sein (also darf nur ein Element enthalten) und bei mir werden immer noch ein paar Parameter mehr übergeben.
      ---
      Aber eigentlich wäre das jetzt die Idee, die ich weiterverfolgen würde, wenn das System mit dem Aufsummieren der Offsets so gut klappen würde ;-)