SohnDesMogh: suche Möglichkeit um absolute Position eines Bildes auszulesen

Moin das thema sagt eigentlich schon alles.

ich habe einen text an dessen ende ein bild (blinder pixel) eingebunden ist.
dieser text wird in einem popup angezeigt.
ich weiss im vornherin nicht wie lang der text ist (kommt aus ner datenbank)
ich möchte per JS das popup so weit aufreissen bis das blinde pixel innerhalb des sichtbaren bereiches liegt, dazu brauche ich dessen absolute postion in diesem fenster.

wie ich im nachhinein die fenstergrösse ändere weiss ich, ich habe aber keine ahnung wie ich an die koordinaten des blinden pixels kommen kann um diese dann als neue fenstergrösse zu verwenden.

weiss jemand wie ich an diese daten komme?

falls ihr eine anders geartet lösung gesehen habt oder euch vorstellen könnt postet diese bitte (auch wenn es nur die idee ist)

danke

  1. hallo Mister Wuff, SohnDesMogh,

    Moin das thema sagt eigentlich schon alles.

    Nunja, das tut es - allerdings in einem völlig anderen Sinn als von dir gedacht.

    ich habe einen text an dessen ende ein bild (blinder pixel) eingebunden ist.

    Könntest du bitte erläutern, warum das so ist? Kannst du diesen "blinden Pixel" nicht einfach weglassen?

    dieser text wird in einem popup angezeigt.
    ich weiss im vornherin nicht wie lang der text ist (kommt aus ner datenbank)

    Na gut, sowas kommt vor. Aber dir ist bekannt, daß heute wohl die meisten irgendwelche Popupblocker laufen haben und bei vielen Javascript ganz und gar deaktiviert ist?

    ich möchte per JS das popup so weit aufreissen

    Ups. "Aufreißen" ist eine Vokabel, die ich nur als Anmachspruch kenne. Man geht eben abends mal schnell irgendein Mädelchen aufreißen - meistens erfolglos, aber das macht ja nix. Wie du jetzt ein popup aufreißen willst, weiß ich nicht genau. Faß es einfach rechts und links oben an und reiße es mit Kraft auseinander. Das wars dann.

    bis das blinde pixel innerhalb des sichtbaren bereiches liegt

    Wieso liegt es denn außerhalb?

    wie ich im nachhinein die fenstergrösse ändere weiss ich

    Da weißt du mehr als ich. Ein Fenster, das bereits besteht, kann in seiner Größe kaum mehr anders als manuell verändert werden, und auch das kannst du verbieten. Oder was verstehst du unter "im Nachhinein"?

    ich habe aber keine ahnung wie ich an die koordinaten des blinden pixels kommen kann

    Wenn es denn Koordinaten hat. Woher weißt du, daß es solche "Koordinaten" überhaupt gibt?

    um diese dann als neue fenstergrösse zu verwenden.

    Äh ... du willst also dein Fenster so groß machen wie _ein_ "blindes Pixel". Sehr interessante Idee:ein Fenster, das ein Pixel hoch und ein Pxel breit ist. Mit welcher Lupe soll man darin was erkennen können?

    weiss jemand wie ich an diese daten komme?

    Nein, jedenfalls nicht aufgrund deiner Problembeschreibung.

    falls ihr eine anders geartet lösung gesehen habt oder euch vorstellen könnt

    Eine Lösung wofür? Du möchtest einen Text aus einer Datenbank auslesen und anzeigen lassen. Ja, dafür gibts Lösungen. Nur braucht man dafür eigentlich nicht unbedingt ein Popup.

    Im übrigen wärs nett, wenn du dich an die Regeln für Groß- und Kleinschreibung erinnern könntest.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. hallo Mister Wuff, SohnDesMogh,

      Moin das thema sagt eigentlich schon alles.

      Nunja, das tut es - allerdings in einem völlig anderen Sinn als von dir gedacht.

      ich habe einen text an dessen ende ein bild (blinder pixel) eingebunden ist.

      Könntest du bitte erläutern, warum das so ist? Kannst du diesen "blinden Pixel" nicht einfach weglassen?

      dieser text wird in einem popup angezeigt.
      ich weiss im vornherin nicht wie lang der text ist (kommt aus ner datenbank)

      Na gut, sowas kommt vor. Aber dir ist bekannt, daß heute wohl die meisten irgendwelche Popupblocker laufen haben und bei vielen Javascript ganz und gar deaktiviert ist?

      ich möchte per JS das popup so weit aufreissen

      Ups. "Aufreißen" ist eine Vokabel, die ich nur als Anmachspruch kenne. Man geht eben abends mal schnell irgendein Mädelchen aufreißen - meistens erfolglos, aber das macht ja nix. Wie du jetzt ein popup aufreißen willst, weiß ich nicht genau. Faß es einfach rechts und links oben an und reiße es mit Kraft auseinander. Das wars dann.

      bis das blinde pixel innerhalb des sichtbaren bereiches liegt

      Wieso liegt es denn außerhalb?

      wie ich im nachhinein die fenstergrösse ändere weiss ich

      Da weißt du mehr als ich. Ein Fenster, das bereits besteht, kann in seiner Größe kaum mehr anders als manuell verändert werden, und auch das kannst du verbieten. Oder was verstehst du unter "im Nachhinein"?

      ich habe aber keine ahnung wie ich an die koordinaten des blinden pixels kommen kann

      Wenn es denn Koordinaten hat. Woher weißt du, daß es solche "Koordinaten" überhaupt gibt?

      um diese dann als neue fenstergrösse zu verwenden.

      Äh ... du willst also dein Fenster so groß machen wie _ein_ "blindes Pixel". Sehr interessante Idee:ein Fenster, das ein Pixel hoch und ein Pxel breit ist. Mit welcher Lupe soll man darin was erkennen können?

      weiss jemand wie ich an diese daten komme?

      Nein, jedenfalls nicht aufgrund deiner Problembeschreibung.

      falls ihr eine anders geartet lösung gesehen habt oder euch vorstellen könnt

      Eine Lösung wofür? Du möchtest einen Text aus einer Datenbank auslesen und anzeigen lassen. Ja, dafür gibts Lösungen. Nur braucht man dafür eigentlich nicht unbedingt ein Popup.

      Im übrigen wärs nett, wenn du dich an die Regeln für Groß- und Kleinschreibung erinnern könntest.

      Grüße aus Berlin

      Christoph S.

      Lieber Christoph S.

      mal ehrlich hast du zu dieser zeit nichts anderes zu tun als so'n blödsin zu labern. da war (bis auf das erkennen des Namens) nicht eine sinnvolle aussage in dem was du schreibst. sollte ich mich in meiner bitte um hilfe umständlich ausgedrückt haben hätte ein kurzer hinweis dazu gereicht.

      irgentwie kommt mir das ganze wie ein lächerlicher versuch von spam vor. aber (b)ist ja auch egal.

      an alle anderen: falls ihr mir helfen könnt seid ihr herzlich eingeladen auch ohne beachtung von grossen und kleinen buchstaben äusserungen zu hinterlassen.

      1. Hi,

        mal ehrlich hast du zu dieser zeit nichts anderes zu tun als so'n blödsin zu labern. da war (bis auf das erkennen des Namens) nicht eine sinnvolle aussage in dem was du schreibst. sollte ich mich in meiner bitte um hilfe umständlich ausgedrückt haben hätte ein kurzer hinweis dazu gereicht.

        irgentwie kommt mir das ganze wie ein lächerlicher versuch von spam vor. aber (b)ist ja auch egal.

        an alle anderen: falls ihr mir helfen könnt seid ihr herzlich eingeladen auch ohne beachtung von grossen und kleinen buchstaben äusserungen zu hinterlassen.

        ich könnte Dir helfen. Aber wenn Du es bevorzugst, hoch angesehene Stammposter zu beleidigen und ihnen Unhaltbares vorzuwerfen, dann lasse ich es lieber sein. Arbeite an Deiner sozialen Kompetenz.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. Hi,

        an alle anderen: falls ihr mir helfen könnt seid ihr herzlich eingeladen auch ohne beachtung von grossen und kleinen buchstaben äusserungen zu hinterlassen.

        Elementposition herausfinden.

        Gruß, Cybaer

        PS: Die (in der Art leider nicht unüblichen und periodisch leider wiederkehrenden) Äußerungen des "hochangesehenen Stammposters" werden von einigen anderen Stammpostern übrigens durchaus kritisch gesehen.

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Die Funktion ist unvollständig, weil sie nicht die absolute Position eines Elementes bestimmt, daß bereits absolut positioniert wurde. Aber dieser Fall ist eigentlich selten.
    Die Funktion klappt auf IE, Opera und Firefox

    function getAbsolutPositionOf(elem)
    {
      // Ergebniss ist ein Objekt mit den Koordinaten x,y
      var erg = new Object();
      erg.x = 0;
      erg.y = 0;

    var tNode = elem;
      var xPos = 0;
      var yPos = 0;

    while (tNode.nodeName != "BODY")
      {
        xPos += tNode.offsetLeft;
        yPos += tNode.offsetTop;
        tNode = tNode.offsetParent;
      }
      erg.x = xPos;
      erg.y = yPos;
      return erg;
    }

    1. Die Funktion ist unvollständig, weil sie nicht die absolute Position eines Elementes bestimmt, daß bereits absolut positioniert wurde. Aber dieser Fall ist eigentlich selten.

      Wieso nicht, die Funktion ermittelt die Position im Dokument, auch eines absolut positonierten.

      Die Funktion läßt sich noch vereinfachen:

      function getAbsolutPositionOf(elem)
       {
         // Ergebniss ist ein Objekt mit den Koordinaten x,y
         var erg = {x:0, y:0};
         var tNode = elem;

      while (tNode)
         {
           erg.x += tNode.offsetLeft;
           erg.y += tNode.offsetTop;
           tNode = tNode.offsetParent;
         }
         return erg;
       }

      Struppi.

      1. Die Funktion dürfte aber dann nicht bis zum BODY-Element weiter aufaddieren sondern müsste bei dem absolut positionierten Element aufhören.
        Die geänderte Funktion ist aber nicht ganz so schwierig, nur im Normalfall braucht man sie nicht.

        Das mit der Variablenzuweisung in OO wusste ich noch nicht.
        Müsste ich mir wohl mal genauer anschauen...

        Gruß,
        Flash

        1. Die Funktion dürfte aber dann nicht bis zum BODY-Element weiter aufaddieren sondern müsste bei dem absolut positionierten Element aufhören.

          Probier es aus. Denn das stimmt nicht. Die Position absolut positionierter Elemente bestimmt man genau so.

          Struppi.

          1. Die Funktion dürfte aber dann nicht bis zum BODY-Element weiter aufaddieren sondern müsste bei dem absolut positionierten Element aufhören.

            Probier es aus. Denn das stimmt nicht. Die Position absolut positionierter Elemente bestimmt man genau so.

            Struppi.

            Habe es ausprobiert, bin aber nicht sicher, ob wir beide recht haben...

            Denn es gibt einen Unterschied zwischen parentNode und offsetParent.
            Wenn ich offsetParent nutze, dann darf ich nur bis zu dem absoluten Element gehen, anderst bei parentNode (vermute ich).

            Habe eine 'simple' Website, die verschachtelte absolute Divs nutzt, um ein mehrstufiges Drop-Down-Menü zu erzeugen.
            Die einzelnen Menüs werden absolut positioniert, also ist die zweite Menü-Stufe von der absoluten Position der ersten Menüstufe abhängig.
            Das besondere: die jeweilige Folgestufe ist ein echtes Child des übergeordneten Drop-Downs. Somit ist die absolute Position der übergeordneten Stufe beim hochklettern in der DOM-Struktur vor dem Body-Tag.

            Das das funktioniert siehst du hier (->), wenn du auf Galerie gehst, und dort im Archiv eine Galerie aussuchst (2fach geschachteltes Submenü).
            http://www.forum35.de/

            Gruß,
            Flash