| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Получение координатов объекта |
| Автор: Noodly 4.10.2009, 15:11 |
| Есть картинка <img id="hey" src="./img/sklad.gif"> И есть функция для получения ее координаты икс: function getAbsolutePosition(el) { var r = { x: el.offsetLeft, y: el.offsetTop }; if (el.offsetParent) { var tmp = getAbsolutePosition(el.offsetParent); r.x += tmp.x; r.y += tmp.y; } return r; } Если вызывать функцию так: <a href="javascript:alert(getAbsolutePosition(document.getElementById('hey')).x)">Вычислить координаты слоя!</a> То она отлично работает. Выдает 300. А если я хочу присовить число ее координат другому объекту с помощью: var startX = getAbsolutePosition(document.getElementById('hey'); То alert(startX) выдает значение ноль. Обясните в чем ошибка. |
| Автор: Amphiluke 4.10.2009, 15:35 | ||
Для начала напишите без ошибок (!), как присваиваете результат функции переменной startX. Во-вторых, имейте в виду, что функция возвращает объект, поэтому alert(startX) покажет [object Object]. Ищите ошибку в своем коде — всё работает при должной аккуратности.
|
| Автор: Noodly 4.10.2009, 17:34 |
| Собственно да. Ваш код работает. Но когда засовываешь картинку в таблицу, почему-то опять выдает ноль. Вот: http://sybyrskiy-valenok.narod.ru/here.html Картинка "Склад СЗЧ" |
| Автор: Amphiluke 4.10.2009, 18:21 |
| Вообще, конечно, оригинально оформлен там код... O_o Нет даже обязательных дескрипторов <html>, <head>, <body>... Сразу <table>, как топором отрубили! Вообще, страшно, уж простите. Оформите html-код как следует, без этого точно не будет работать так, как должно. Для IE, возможно, придется перенести все действия, которые должны выполняться после открытия документа, в функцию, которую назначить в качестве обработчика события onload для body. |