ich benutze auch offsetTop und offsetLeft, ich hangele mich dann aber bis zum Body durch und addiere die Positionen auf:
var jb_pos = function(el) {
var pos = new Object();
pos.x = pos.y = 0;
if(el && el.offsetParent){
while(el) {
pos.x += el.offsetLeft;
pos.y += el.offsetTop;
el = el.offsetParent;
}
}
return pos;
}
Danke, das ist die Lösung, die mit Firefox \*\*und\*\* Opera läuft.
Ich definiere allerdings kein Object, um ein paar Zahlen zu addieren:
~~~javascript
var t = l = 0;
el = move; // move ist das zu bewegende Element
while( el )
{
t += el.offsetTop;
l += el.offsetLeft;
el = el.offsetParent;
}
Ist es richtig, dass das Zeichen = einen Zeiger setzt? Also das Objekt nur referenziert, nicht kopiert? Eine Kopie ist dann var el = move; ?
Wie kopiere ich dann etwas in eine Variable ausserhalb einer Funktion, wenn also el global sein soll?
Rudi