Как получить значение позиции прокрутки документа?
Ответы:
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
scrollHeight
.
Вот как получить scrollHeight
элемент, полученный с помощью селектора jQuery:
$(selector)[0].scrollHeight
Если selector
- это идентификатор элемента (например,elemId
), гарантируется, что элемент массива с индексом 0 будет тем элементом, который вы хотите выбрать, и scrollHeight
будет правильным.
Если вы используете JQuery 1.6 или выше, используйте prop для доступа к значению.
$(document).prop('scrollHeight')
Предыдущие версии получали значение из attr, но не из публикации 1.6.
document.getElementById("elementID").scrollHeight
$("elementID").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.
Большинство других решений отлично работают для прокручиваемых элементов, но это работает для всего окна. Примечательно, что у меня была та же проблема, что и у Майкла, для решения Ankit, а именно: $(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})