Как рассчитать смещение () для <li>относительно его родительского контейнера - PullRequest
2 голосов
/ 06 августа 2010

У меня есть <li>, который вложен в содержащий <ul>, что я хотел бы рассчитать смещение.Но имейте верхний левый угол <ul> be 0, 0.

. Итак, мой HTML:

<div style="margin: 0 auto; width: 760px; height: 760px; overflow: hidden;">
    <ul style="width: 2000px; height: 2000px; min-height: 2000px; position: relative;">
        <li style="position: relative; width: 40px; height: 40px;"></li>
    </ul>
</div>

А мой текущий jQuery:

thePos = $('ul li').offset();
alert('X = '+thePos.left+', Y = 'thePos.top);

Однако, это возвращает смещения, которые не 0, 0.Я предполагаю, что он вычисляет смещение относительно края документа вместо родительского контейнера.

Как мне обойти это?

Благодарю вас.

примечание: position() также не получает правильные числа: (

Ответы [ 2 ]

8 голосов
/ 06 августа 2010

Попробуйте использовать position() вместо offset().

Из документации jQuery:

Метод .offset () позволяет получить текущую позицию элементаотносительно документа.Сравните это с .position (), которая возвращает текущую позицию относительно смещения родителя.

0 голосов
/ 06 августа 2010

Я исправил это, установив:

thePosX = $('ul li').css('left');
thePosY = $('ul li').css('top');

Вместо:

thePos = $('ul li').css('left');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...