Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   offsetLeft и offsetTop не работает внутри таблицы в IE7 (https://javascript.ru/forum/css-html-internet-explorer/3019-offsetleft-i-offsettop-ne-rabotaet-vnutri-tablicy-v-ie7.html)

tsols 10.03.2009 11:11

offsetLeft и offsetTop не работает внутри таблицы в IE7
 
Как в IE7 получить расположение элемента если он находится внутри таблицы, стандартное получение через style.left/style.top и offsetLeft/offsetTop не срабатывает.

<table width="100%" height="100%">
    <tr><td align="center" valign="middle">
        <img id="main" style="position: relative">
    </td></tr>
</table>


<script language="javascript">
        alert(document.getElementById('main').offsetLeft + '-' + document.getElementById('main').offsetTop);
        alert(document.getElementById('main').style.left + '-' + document.getElementById('main').style.top);
        </script>

Kolyaj 10.03.2009 11:58

В поиск по форуму. По какому слову догадаетесь?

tsols 10.03.2009 12:29

не знаю, может я ни так ищу, но в форуме я увы решения своей проблемы не нашел

Kolyaj 10.03.2009 12:47

http://javascript.ru/forum/search.php?searchid=30588

tsols 10.03.2009 12:53

в этих темах нет информации которая решает указанную мной проблему, я их уже все просмотрел

Kolyaj 10.03.2009 13:42

Цитата:

Сообщение от Kolyaj
function getOffsetTop(element) {
    var offset = 0;
    do {
        offset += element.offsetTop;
    } while (element = element.offsetParent);
    return offset;
}

Цитата:

Сообщение от tenshi
с помощью offsetParent, offsetLeft и offsetTop, рекурсивно

Цитата:

Сообщение от Илья Кантор
// В простом случае пойдет вот так
function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

...

tsols 10.03.2009 14:33

Спасибо за помощь, но это я протупил, я пытался получить offsetLeft/offsetTop внутри таблицы:
<table style="position: relative" width="100%" height="100%">
<tr><td align="center" valign="middle">
<img id="main" style="position: relative">
<script language="javascript">
alert(document.getElementById('main').offsetLeft);
alert(document.getElementById('main').offseTop);
</script>
</td></tr>
</table>

после того как вынес javascript вне таблицы, все заработало :)

zhivago 24.12.2010 11:37

sfsdfsdfdsf

zhivago 24.12.2010 11:41

:help:


Часовой пояс GMT +3, время: 20:14.