Определение координат div

 
0
 
JavaScript
ava
guest | 16.11.2004, 21:54
Мне надо сделать привязку одного div с абсолитным позиционированием (id=div1, name=div1) к другому (с относительным, находится в ячейке таблицы, id=div2, name=div2). Для определения координат div2 пользуюсь такой функцией:


getAbsolutePos = function(el) {
var SL = 0, ST = 0;
if (el.scrollLeft)
SL = el.scrollLeft;
if (el.scrollTop)
ST = el.scrollTop;
var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
if (el.offsetParent) {
var tmp = this.getAbsolutePos(el.offsetParent);
r.x += tmp.x;
r.y += tmp.y;
}
return r;
}


Для задания координат div1:

if (navigator.appName.indexOf("Internet Explorer") != -1)
{
div1.style.top = getAbsolutePos(div2).y+document.body.scrollTop-14;
div1.style.left = getAbsolutePos(div2).x+document.body.scrollLeft-6;
}
else
{
div1.style.top = getAbsolutePos(div2).y+window.scrollY-14;
div1.style.left = getAbsolutePos(div2).x+window.scrollX-6;
}


Бывают такие глюки:
1. div1 выводится при первом отображении страницы в произвольном месте (после рефреша становится на место)
2. Под Оперой координата top высчитывается правильно, а left = 0

Почему?

Kommentare (1)
ava
sergejzr | 16.11.2004, 21:57 #
У меня тоже была такая беда. Попробуйте добавлять "px" в конце.
Т.е например:

div1.style.left = getAbsolutePos(div2).x+window.scrollX-6+"px";
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  guest   sergejzr
Ähnliche
advanced
Absenden