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

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

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« : 02 Февраля 2004, 15:47:36 »
Пытаюсь определить координаты какого-либо объекта на странице
d=eval(\'document.getElementById("\'+obj+\'").style\');

top= d.top;
left= d.left;

Но, почему-то не работает это.
Хотя таким же способом задать эти свойста у объекта obj получается, а определить их никак

Может кто знает, подскажет...

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблема с определением top
« Ответ #1 : 02 Февраля 2004, 15:59:10 »
Цитировать
pahal:
d=eval(\'document.getElementById("\'+obj+\'").style\');

Попробуй
eval(\'d=document.getElementById("\'+obj+\'").style\');
LJ: Backslashed life (rss)

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #2 : 02 Февраля 2004, 16:10:33 »
А что это даст и как при этом свойства top и left вытащить?

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблема с определением top
« Ответ #3 : 02 Февраля 2004, 16:15:18 »
Функция Eval выполняет код, который ей передали.
1.
Цитировать
pahal:
d=eval(\'document.getElementById("\'+obj+\'").style\');

d присвоить результат выполнения функции eval (true)
2.
Цитировать
CGVictor:
eval(\'d=document.getElementById("\'+obj+\'").style\');

d присвоить стиль объекта (style)
Уловил разницу?
Свойства вытаскиваются абсолютно идентично.
LJ: Backslashed life (rss)

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #4 : 02 Февраля 2004, 16:20:09 »
так что получится после выполнения этой функции можно вытаскивать свойства так же

top= d.top;
left= d.left;

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблема с определением top
« Ответ #5 : 02 Февраля 2004, 16:23:17 »
Вроде так.
LJ: Backslashed life (rss)

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #6 : 02 Февраля 2004, 16:26:26 »
было бы замечательно, да вот только результат такой же - эти величины не определяются....:(

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #7 : 02 Февраля 2004, 17:10:10 »
Неужели никто не поможет, как определить свойства left и top у объекта?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проблема с определением top
« Ответ #8 : 02 Февраля 2004, 17:43:54 »
ИМХО, пока ты не установил top/left (яваскриптом или через CSS) нельзя узнать скриптом их значения.
Поэтому часто при создании слоев (layers), им сначало устанавливают начальное положение

ЗЫ
могу ошибаться, давно не занимался client-side программированием
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #9 : 02 Февраля 2004, 18:03:05 »
так мне-то как раз и нужно узнать координаты объекта, а где именно он будет лежать сначала неизвестно...
его-то координаты мне и нужны, чтобы другому слою их передать

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #10 : 02 Февраля 2004, 18:07:38 »
pahal

во-первых, eval на помойку сразу.

во-вторых, свойства читаются так

document.getElementById(obj).offsetLeft
document.getElementById(obj).offsetTop

а устанавливаются так

document.getElementById(obj).style.left=...
document.getElementById(obj).style.top=...

CGVictor

хорош врать-то.

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #11 : 02 Февраля 2004, 18:13:34 »
спасибо Гоша!!!
как всё, однако просто...:)

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #12 : 02 Февраля 2004, 18:20:41 »
вот только NN 7 почему-то не хочет этого определять

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Проблема с определением top
« Ответ #13 : 02 Февраля 2004, 18:39:15 »
Цитировать
гоша:
хорош врать-то.

Что тебе не понравилось?

Цитировать
гоша:
document.getElementById(obj).offsetLeft
document.getElementById(obj).offsetTop

в Нетскейпе не работают. Кто после этого "хорош врать"?
LJ: Backslashed life (rss)

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема с определением top
« Ответ #14 : 02 Февраля 2004, 18:44:40 »
а что именно эти свойства определяют?
а то у меня получилась странная вещь...
в слое лежит объект, координаты самого слоя как-то расчитываются, а объект лежит внутри слоя точно не известно где...
а эти свойства определяют координаты как-то странно, совсем не те значения, которые визуально видны, как буд-то этот объект лежит в самом верху страницы???

 

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