Как получить позицию прокрутки документа?

Как получить значение позиции прокрутки документа?

Ответ 1

$(document).height() //returns window height

$(document).scrollTop() //returns scroll position from top of document

Ответ 2

Здесь, как получить scrollHeight элемента, полученного с помощью селектора jQuery:

$(selector)[0].scrollHeight

Если selector - это идентификатор элемента (например, elemId), гарантируется, что элемент с индексом 0 будет элементом, который вы хотите выбрать, и scrollHeight будет правильным.

Ответ 3

Если вы используете JQuery 1.6 или выше, используйте prop для доступа к значению.

$(document).prop('scrollHeight')

Предыдущие версии, используемые для получения значения из attr, но не после 1.6.

Ответ 4

document.getElementById("elementID").scrollHeight

$("elementID").scrollHeight

Ответ 5

Он использует элементы HTML DOM, но не селектор jQuery. Его можно использовать как:

var height = document.body.scrollHeight;

Ответ 6

Что-то вроде этого должно решить вашу проблему:

$.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: вызывать эту функцию каждый раз, когда она вам нужна, предупреждение предназначено для целей тестирования.

Ответ 7

Чтобы получить фактическую прокручиваемую высоту областей, прокручиваемых полосой прокрутки окна, я использовал $('body').prop('scrollHeight'). Это, кажется, самое простое рабочее решение, но я не очень тщательно проверял его на совместимость. Эмануэле Дель Гранде отмечает еще одно решение, которое, вероятно, не будет работать для IE ниже 8.

Большинство других решений отлично работают для прокручиваемых элементов, но это работает для всего окна. Примечательно, что у меня была такая же проблема, как Майкл для решения Ankit, а именно, что $(document).prop('scrollHeight') возвращает undefined.

Ответ 8

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

Помните: jQuery может принимать функцию вместо значения в качестве аргумента. "this" - это объект, обработанный jQuery, функция возвращает свойство scrollHeight текущего DIV "this" и делает это для всех DIV в документе.

$("div").scrollTop(function(){return this.scrollHeight})

Ответ 9

Попробуйте следующее:

var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;