Как получить положение прокрутки документа?
Как получить значение положения прокрутки документа?
9 ответов:
$(document).height() //returns window height $(document).scrollTop() //returns scroll position from top of document
вот как получить
scrollHeight
элемента, полученного с помощью селектора jQuery:$(selector)[0].scrollHeight
если
selector
- это идентификатор элемента (например,elemId
), гарантируется, что 0-индексированный элемент массива будет элементом, который вы хотите выбрать, иscrollHeight
будет правильно.
Если вы используете Jquery 1.6 или выше, используйте prop для доступа к значению.
$(document).prop('scrollHeight')
предыдущие версии использовались для получения значения из attr, но не post 1.6.
он использует элементы HTML DOM, но не селектор jQuery. Он может быть использован как:
var height = document.body.scrollHeight;
что-то вроде это должно решить вашу проблему:
$.getDocHeight = function(){ var D = document; return Math.max(Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), Math.max(D.body.clientHeight, D.documentElement.clientHeight)); }; alert( $.getDocHeight() );
Ps: вызывайте эту функцию каждый раз, когда вам это нужно, предупреждение предназначено для тестирования..
чтобы получить фактическую высоту прокрутки областей, прокручиваемых полосой прокрутки окна, я использовал
$('body').prop('scrollHeight')
. Это, кажется, самое простое рабочее решение, но я не проверял широко на совместимость. Эмануэле Дель Гранде отмечает еще одно решение, которое, вероятно, не будет работать для IE ниже 8.большинство других решений работает для прокрутки элементов, но это работает для всего окна. Примечательно, что у меня была та же проблема, что и у Майкла для решения Анкита, а именно:
$(document).prop('scrollHeight')
возвращаетсяundefined
.
попробуйте это:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
вы можете попробовать это, например, этот код помещает полосу прокрутки внизу для всех тегов DIV
помните: jQuery может принимать функцию вместо значения в качестве аргумента. "this" - это объект, обрабатываемый jQuery, функция возвращает свойство scrollHeight текущего DIV" this " и делает это для всех DIV в документе.
$("div").scrollTop(function(){return this.scrollHeight})