Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение координат div 
:(
    Опции темы
Гость_Sergey
Дата 16.11.2004, 21:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне надо сделать привязку одного 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

Почему?


  Вверх
sergejzr
Дата 16.11.2004, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



У меня тоже была такая беда. Попробуйте добавлять "px" в конце.
Т.е например:
Код

div1.style.left = getAbsolutePos(div2).x+window.scrollX-6+"px";



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.