Как узнать позицию эл. лбъекта на странице?

 
0
 
JavaScript
ava
[email protected] | 21.11.2003, 18:05
САБЖ
Допустим:
Цитата
<div id="mainDivId_1">ha-ha-ha ...</div>

Такой вот элемент есть на странице, нужно узнать его расположение на странице в пикселах?
Я пробовал делать
Цитата
left = document.getElmentById("mainDivId_1").style.left;
Но пишет что undefined ... :angry:
Ответы (6)
ava
SVK | 22.11.2003, 19:39 #
Естествено - ведь стиль этого div-а не задан. Вот так можно:
<html><body>
Some <p> placeholder <p>
<center>
<div id="myDiv" style="width:100; border:solid 1px;">
My <br> Test <br> Div
</div></center>
<script>
var d = document.getElementById("myDiv");
document.write("offsetLeft=" + d.offsetLeft+ "<br>");
document.write("offsetTop=" + d.offsetTop + "<br>");
document.write("offsetHeight=" + d.offsetHeight + "<br>");
document.write("offsetWidth=" + d.offsetWidth + "<br>");
</script>
</body></html>
ava
[email protected] | 22.11.2003, 20:17 #
Чего это за ужас ? Я проще сделал ... document.getElementById("myDiv").style.pixelTop, pixelLeft ...
ava
[email protected] | 22.11.2003, 20:18 #
Хотя может мой вариант будет работать и не во всех бразерах ... попробуем твой
Ты лучше поподробнее про эти офсеты расскажи, а то я что то не нашел у себя в книгаз такого ...
ava
[email protected] | 22.11.2003, 21:58 #
Неа, не пашет ... видимо их ха того что сначала элемент div.style.display: none; ... а больше способов нет?
ava
SVK | 22.11.2003, 22:38 #
А чего ужасного то? document.getElementById("myDiv").offsetTop дает координату Y относительно вернего края окна. left = document.getElementById("myDiv").offsetLeft. Цепочка даже на один объект меньше, чем у тебя, и к тому же правильно - работает в IE и в NS7. Куда проще то? А остальное я для примера добавил - чтобы тестировать легко было.

A про оффсеты я на html.manual.ru/forum узнал. Нормального справочника по DOM так и не нашел.

А чтобы style использовать (как ты пытаешься), надо сначала этот самый style где-то задать.

И с display:none работает все прокрасно (проверил в IE6 и в NS7):

<html><body>
Some <p> placeholder <p>
<center>
<div id="myDiv" style="width:100; border:solid 1px; display:none">
My <br> Test <br> Div
</div></center>
<a href="javascript:showIt();">SHOW!</a>
<script>
function showIt()
{ document.getElementById("myDiv").style.display="block";
alert (document.getElementById("myDiv").offsetLeft);
}
</script>
</body></html>

ava
[email protected] | 23.11.2003, 00:05 #
SVK, будем знать smile
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить