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.«