bastian: <img> Position feststellen

Hi,

<img src="ball.jpg" name="ball">

----------
obj = document.getElementByName("ball");

Meine Frage wie bekomme ich die absolute (top,left) Position des objectes?

gruß
bastian

  1. Hi,

    hi

    <img src="ball.jpg" name="ball">


    obj = document.getElementByName("ball");

    Meine Frage wie bekomme ich die absolute (top,left) Position des objectes?

    obj = document.getElementByName("ball").style.top
    obj = document.getElementByName("ball").style.left

    gruß
    bastian

    ulli

    1. obj = document.getElementByName("ball").style.top

      Ok, das es Elements heißt ist klar, habe aber ich schon falsch gemacht. Aber:

      document.getElementsByName("ball").style ist undefined

      weis jemand rat?

    2. Hallo, Bastian und Ulli,

      <img src="ball.jpg" name="ball">


      obj = document.getElementByName("ball");

      Meine Frage wie bekomme ich die absolute (top,left) Position des objectes?

      obj = document.getElementByName("ball").style.top
      obj = document.getElementByName("ball").style.left

      Die Methode getElementByName gibt es nicht, nur getElementsByName http://selfhtml.teamone.de/javascript/objekte/document.htm#get_elements_by_name, und diese liefert einen Array von mehreren Elementobjekten zurück, da ja ein name-Attribut im Gegensatz zum id-Attribut mehr als einmal im Dokument vorkommen kann. Also muss das erste Element in diesem Array gewählt werden, welches den Index 0 hat: document.getElementsByName("ball")[0].[Objekteigenschaft]

      Ferner können .style.top und .style.left meines Wissens i.d.R. nur zum Setzen eines Wertes genutzt werden, das heißt sie sind erst abrufbar, wenn sie vorher per JavaScript gesetzt wurden. Um den tatsächlichen CSS-Eigenschaftswert eines Elements abzurufen, sind folgende Methoden möglich:
      http://styleassistant.de/tips/tip56.htm (W3C/Mozilla)
      http://styleassistant.de/tips/tip64.htm (MSIE)

      Einfacher geht es im konkreten Falle aber über offsetTop und offsetLeft:
      http://selfhtml.teamone.de/javascript/objekte/all.htm#offset_top
      http://selfhtml.teamone.de/javascript/objekte/all.htm#offset_left
      Diese Eigenschaften sind sowohl im MSIE, Mozilla als auch im Opera (die Konstruktion mit getElementsByName geht erst ab Opera 7, davor ist es mit getElementById möglich) verfügbar:

      var oben=document.getElementsByName("ball")[0].offsetTop;
      var links=document.getElementsByName("ball")[0].offsetLeft;

      Wobei zu beachten ist, relativ zu welchem Element die Position berechnet wird...

      Grüße,
      Mathias

      --
      »In anderen Newsgroups werden Pseudonyme akzeptiert, es handelt sich dabei meist um Gruppen, in denen sensible Themen (z.B. psychische oder peinliche Erkrankungen o.ä.) behandelt werden.«