Есть ли способ найти абсолютное положение элемента, то есть относительно начала окна, используя jQuery?
Как найти абсолютную позицию элемента с помощью jQuery?
Ответ 1
.offset()
вернет позицию смещения элемента как простого объекта, например:
var position = $(element).offset(); // position = { left: 42, top: 567 }
Вы можете использовать это возвращаемое значение для размещения других элементов в одном и том же месте:
$(anotherElement).css(position)
Ответ 2
Обратите внимание, что $(element).offset()
указывает позицию элемента относительно документа. Это отлично работает в большинстве случаев, но в случае position:fixed
вы можете получить неожиданные результаты.
Если ваш документ длиннее окна просмотра, и вы прокручиваетесь вертикально в нижней части документа, то ваш position:fixed
элемент offset()
значение будет больше ожидаемого значения на сумму вы прокрутили.
Если вы ищете значение относительно окна просмотра (окна), а не документ в позиции: фиксированный элемент, вы можете вычесть значение документа scrollTop()
из значения фиксированного элемента offset().top
. Пример: $("#el").offset().top - $(document).scrollTop()
Если родительский элемент offset position:fixed
- это документ, вы хотите вместо него читать parseInt($.css('top'))
.