Автор Тема: Проблема с определением top  (Прочитано 8439 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #15 : 02 Февраля 2004, 19:08:56 »
offset - по английски "смещение". Т.е. эти свойства возвращают позицию (смещение) объекта относительно старшего элемента (=offsetParent), а не позицию на странице.

Оффлайн subbotin

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #16 : 03 Февраля 2004, 11:49:10 »
Чтобы получить координату относительно документа, нужно пройти в цикле по свойству offsetLeft всех предков:

var node=obj;
var left=0;
while(node!=document.body){
left+=parseInt(node.offsetLeft);
node=node.parentNode;
}

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #17 : 03 Февраля 2004, 12:08:45 »
while(node!=document.body){

так делать не надо. просто

while(node){

и не

node=node.parentNode;

а

node=node.offsetParent;

это разные вещи.

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #18 : 04 Февраля 2004, 21:42:22 »
Что-то как-то это всё очень сложно....:(

Неужели нельзя сделать это как-то попроще..

Проблема-то вот в чём...

Есть динамическая страничка, на неё ссылки, при клике по ним вываливается менюшка, в которой опять же ссылки, при наведении на которые вываливаются ещё менюшки следующего уровня.
И нужно вываливать их в строго определённом месте. А то они появляются то выше, то ниже, координата нового слоя вычисляется из положения мыши.

Может это можно сделать как-то гораздо проще....

Заранее благодарен за ответ!

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #20 : 05 Февраля 2004, 15:37:37 »
Спасибо, попробую...

Оффлайн Nickii

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.srccode.spb.ru
Проблема с определением top
« Ответ #21 : 07 Февраля 2004, 10:14:44 »
Если вернуться к первому варианту:

 d = eval("document.getElementById(id)").style;
 top = d.top;

Но второй несколько лучше
 
 d = document.getElementById(id);

 Вот только свойства
  offsetLeft и offsetTop специфичны для IE попробуй
 использовать clientLeft и clientTop

Если не поможет вставь следующий код в текст скрипта
и посмотри какие свойства нужно использовать

 d = document.getElementById(id);
test = open("","Test","width=600,height=400,scrollbars=1")
test.document.open();
for(i in d)
  test.document.write(i+"="+d+"
");
test.document.close();


Если ты пользуешь элемент в первый раз, то это свойство style ежели они не были до этого установлены ты действительно не получишь.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28