Thomas: Absolute Position

Hallo,

ich habe ein Problem. Ich brauche die absolute Position auf einem Dokument.

Ich habe 2 Möglichkeiten. Entweder die Position des Mauszeigers oder die Position eines Elementes.

Wichtig dabei ist das es die Position absolut zum gesamten Dokument ist und nicht nur von aktuell angezeigetem Bildschirm.

Ich will anschließend ein Layer genau an diese Position setzen. Bis her hab ich es nur geschaft die relative Position des Sceens herauszufinden. das passt wiederrum nicht mit der position des Layers zusammen..... da diese position absolut vom dokument und nicht vom screen ausgeht.

PS: "position:relative" funktioniert nicht...

  1. Hallo,

    ich habe ein Problem. Ich brauche die absolute Position auf einem Dokument.

    mir ist noch nicht ganz klar geworden worum es dir geht.

    Vielleicht suchst du etwas wie getComputedStyle?

    Hast du -nicht zu umfangreichen :)- Beispielcode?

    Grüsse

    Cyx23

  2. Hi,

    Ich habe 2 Möglichkeiten. Entweder die Position des Mauszeigers ...

    Hier gibts ein Beispiel fuer die Mausposition

    Wichtig dabei ist das es die Position absolut zum gesamten Dokument ist und nicht nur von aktuell angezeigetem Bildschirm.

    Was ist der aktuell angezeigte Bildschirm? Sprichst Du von der Scrollposition?

    Bis her hab ich es nur geschaft die relative Position des Sceens herauszufinden.

    Die relative Position meines Screens ist etwa 50 cm vor meiner Nase...

    das passt wiederrum nicht mit der position des Layers zusammen..... da diese position absolut vom dokument und nicht vom screen ausgeht.

    eine relative positionierung orientiert sich am Fluss der Html-Elemente. Eine absolute Positionierung hingegen an der Position eines ebenfalls _positionierten_ Elternelements oder,falls nicht vorhanden, des bodys.

    PS: "position:relative" funktioniert nicht...

    doch, gut sogar.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Ich habe 2 Möglichkeiten. Entweder die Position des Mauszeigers ...
      Hier gibts ein Beispiel fuer die Mausposition

      Hier verfällst du auf eine Unsitte die leider häufig benutzt wird.
      document.all == IE

      Nur das stimmt nicht, das Opera das schon länger kann ist klar, aber auch Mozilla ab Version ? kennt document.all
      Ich weiß nicht, ob der das M$ DOM nachbaut, aber es ist sinvolller das zu prüfen, was man verwenden möchte.

      also z.b. hier

        
        
      // find out if ie runs in quirks mode  
      //  
      var docEl = (  
      document.documentElement &&  
      document.all &&  
      typeof document.compatMode != "undefined" &&  
      document.compatMode        != "BackCompat"  
      )? "documentElement" : "body";  
        
      // sinnvoller:  
      var docEl = (  
      typeof document.compatMode != "undefined" &&  
      document.compatMode        != "BackCompat"  
      )? "documentElement" : "body";  
        
        
      // position where mousemove fired  
      //  
      var xPos    =  document.captureEvents? e.pageX : window.event.x;  
      var yPos    =  document.captureEvents? e.pageY : window.event.y;  
        
      // Besser:  
      var xPos    =  e ? e.pageX : window.event.x;  
      var yPos    =  e ? e.pageY : window.event.y;  
        
        
      // und hier:  
        
      // for ie add scroll position  
      //  
      if (document[docEl]) {  
      xPos    += document[docEl].scrollTop;  
      yPos    += document[docEl].scrollTop;  
      }  
        
      
      

      Struppi.

      1. Hi,

        Hier verfällst du auf eine Unsitte die leider häufig benutzt wird.
        document.all == IE

        Du hast Recht, ich bin verbluefft. Manche Zoepfe sind so alt, das man vergisst sie abzuschneiden.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
      2. Hi,

        Nur das stimmt nicht, das Opera das schon länger kann ist klar, aber auch Mozilla ab Version ? kennt document.all

        ich habe jetzt nochmals genauer getestet. Mozilla kennt zwar document.all, aber nur wenn er im Quirks Modus laeuft. Das macht diese Abfrage in der Tat noch unzuverlaessiger.

        das ist aber nicht sinnvoll...

        if (document[docEl]) {
        xPos    += document[docEl].scrollTop;
        yPos    += document[docEl].scrollTop;
        }

        ...denn Moz kennt document.documentElement.scrollTop, addiert also die Scrollposition und errechnet ein falsches Ergebniss. Da muss ich mir was anderes ausdenken...

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. das ist aber nicht sinnvoll...

          if (document[docEl]) {
          xPos    += document[docEl].scrollTop;
          yPos    += document[docEl].scrollTop;
          }
          ...denn Moz kennt document.documentElement.scrollTop, addiert also die Scrollposition und errechnet ein falsches Ergebniss. Da muss ich mir was anderes ausdenken...

          Hmmm, bei mir nicht http://javascript.jstruebig.de/lib/mouse.html

          Allerdings prüfe ich nur so:

          function getBody(w)
          {
              return (w.document.compatMode && w.document.compatMode == "CSS1Compat") ?
              w.document.documentElement : w.document.body || null;
          }

          Struppi.

          1. Hi,

            Hmmm, bei mir nicht http://javascript.jstruebig.de/lib/mouse.html

            ich denke das macht den kleinen Unterschied:

            pos.left = evt.clientX;
                pos.top = evt.clientY;

            bzw:

            var xPos    =  e? e.pageX : window.event.x;
                var yPos    =  e? e.pageY : window.event.y;

            e.pageX bekommt bei Dir nur NC 4x zu sehen. Muss mal recherchieren, ob das moeglicherweise veraltet ist...

            Mit document.all das habe ich wirklich verpennt, fuer die Faelle, wo ich es benoetige, nicht aber auf die eigentliche Methode testen kann, muss ich mir was ausdenken. captureEvents ist ganz brauchbar, das kennt auch Opera. Aber ich muss auch noch am PC testen...

            Gruesse, Joachim

            --
            Am Ende wird alles gut.
  3. Hallo Thomas,

    Beispiele und Infos, wie Du an die Mauskoordinaten kommst, findest Du hier:

    http://www.jstruebig.de/web/javascript/exp/mouse-test.html
    http://www.j-berkemeier.de/MausOmeter.html

    Bei der unteren Seite wird per Mausklick an der Mausposition ein kleines Fenster mit den Mauskoordinaten eingeblendet.

    Gruß, Jürgen