У меня есть div с фиксированной позицией, и я хочу получить значение его позиции относительно весь документ, пока пользователь прокручивает страницу вниз.
Итак, скажем, я помещаю элемент div (x=0,y=0), а затем пользователь немного прокручивает вниз, и теперь относительно документа элемент div включен (X=0, y=300). . Я хочу получить эту информацию, я хочу знать точное положение этого div в каждый момент, опять же, относительно всего документа, а не окна или браузера.
Я много чего пробовал, но ничего не получается.
Одним из них является этот код, который не работает в случае фиксированного div:
var position = $("#fixed").offset(); /*it gets the position of the div
"fixed" relative to the document*/
$("#fixed").html(position.top); /*it prints the obtained
value on the div "fixed"*/
Здесь вы можете найти работающий код, и вы можете увидеть это, когда вы прокрутите вниз, значение позиции div не изменится .
Если я не ошибаюсь, код должен печатать новое значение в div каждый раз, когда он меняет свое вертикальное положение относительно документа. Но оказывается, что так не бывает.
Вопрос был решен codef0rmer. Мне не хватало отслеживания прокрутки, чтобы обновить значение позиции фиксированного div. Я был идиотом. Итак, конечный код отлично работает в том виде, в котором он его написал:
$(function () {
var position = $("#fixed").offset();
$("#fixed").html(position.top);
$(window).scroll(function () {
var position = $("#fixed").offset();
$("#fixed").html(position.top);
});
})
И здесь вы можете увидеть работающий код.
Спасибо всем и особенно codef0rmer.