Jak wyliczyć pozycję absolutną elementu na stronie? Do tej pory korzystalem z takiej oto funkcji:
Kod
function findXY(objId)
{
var obj=document.getElementById(objId);
var x=0,y=0,w=0,h=0;
if (obj)
{w=obj.offsetWidth;h=obj.offsetHeight;}
while (obj!=null)
{
x+=obj.offsetLeft;
y+=obj.offsetTop;
obj=obj.offsetParent;
}
return {X:x,Y:y,W:w,H:h};
}
{
var obj=document.getElementById(objId);
var x=0,y=0,w=0,h=0;
if (obj)
{w=obj.offsetWidth;h=obj.offsetHeight;}
while (obj!=null)
{
x+=obj.offsetLeft;
y+=obj.offsetTop;
obj=obj.offsetParent;
}
return {X:x,Y:y,W:w,H:h};
}
Dzialala cacy do czasu, az nie przyszlo mi wyliczac pozycji elementow w cudnym css, gdzie div na divie, kazdy ma jakies marginy i innego typu rzeczy, co powodowalo iz szlag trafial poprawną pozycję.
Przegladalem kody jsCalendar, gdzie im sie to udaje, ale tak to popisali, że wymiekam i mam problemy z przerzuceniem tego w jedną zgrabną funkcję.
Zwracam się więc z prośbą o pomoc.
edit:
moze jeszcze cos dopisze, bo mialem pytanko o co mi dokladnie chodzi

A wiec funkcja ktorą pokazalem dziala dobrze gdy nie jest struktura html zamotana. jednak gdy jest, to juz sie nie sprawuje. W jsCalendar dorobili jeszcze funkcję fixPosition, ktora po wyliczeniu pozycji absolutnej jak gdyby ją jeszcze dostosowuje. A ta funkcja jest wywolywana w jeszcze jednej funkcji o czadowej nazwie: continuation_for_the_fucking_khtml_browser(). Mam jednak problem z wyodrebnieniem tego wszystkiego z jsCalednar, tudziez z napisaniem wlasnego odpowiednika.