Как найти абсолютную позицию элемента с помощью jQuery? - PullRequest
380 голосов
/ 25 марта 2009

Есть ли способ найти абсолютную позицию элемента, то есть относительно начала окна, используя jQuery?

Ответы [ 2 ]

623 голосов
/ 26 марта 2009

.offset() вернет позицию смещения элемента в виде простого объекта, например:

var position = $(element).offset(); // position = { left: 42, top: 567 }

Вы можете использовать это возвращаемое значение, чтобы расположить другие элементы в том же месте:

$(anotherElement).css(position)
185 голосов
/ 27 апреля 2012

Обратите внимание, что $(element).offset() сообщает вам позицию элемента относительно документа . В большинстве случаев это прекрасно работает, но в случае position:fixed вы можете получить неожиданные результаты.

Если ваш документ на длиннее, чем область просмотра , и вы прокрутили его вертикально вниз, то значение offset() элемента position:fixed будет больше ожидаемое значение по сумме, которую вы прокрутили.

Если вы ищете значение относительно окна просмотра (окно), а не документ с фиксированным элементом position: вы можете вычесть значение scrollTop() документа из фиксированного элемента offset().top значение. Пример: $("#el").offset().top - $(document).scrollTop()

Если родителем смещения элемента position:fixed является документ , вместо него нужно прочитать parseInt($.css('top')).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...