$(window).scrollTop() vs. $(document).scrollTop()

Какая разница между:

$(window).scrollTop()

и

$(document).scrollTop()

Спасибо.

Ответ 1

Они оба будут иметь одинаковый эффект.

Однако, как указано в комментариях: $(window).scrollTop() поддерживается большим количеством веб-браузеров, чем $('html').scrollTop().

Ответ 2

Во-первых, вам нужно понять разницу между окном и документом. Объект window - это клиентский объект верхнего уровня. Нет ничего выше объекта окна. Javascript - ориентированный на объект язык. Вы начинаете с объекта и применяете к нему методы или свойства его групп объектов. Например, объект документа является объектом объекта window. Чтобы изменить цвет фона документа, вы должны установить свойство документа bgcolor.

window.document.bgcolor = "red" 

Чтобы ответить на ваш вопрос, нет разницы в конечном результате между окном и scrollTop документа. Оба будут давать тот же результат.

Проверьте рабочий пример http://jsfiddle.net/7VRvj/6/

В основном используется документ для регистрации событий и использования окна для выполнения таких действий, как прокрутка, прокрутка и изменение размера.

Ответ 3

Кросс-браузерный способ сделать это

var top = ($(window).scrollTop() || $("body").scrollTop());

Ответ 4

У меня были некоторые из подобных проблем с scrollTop, описанными здесь.

В конце концов я обошел это на Firefox и IE с помощью селектора $('*').scrollTop(0);

Не идеально, если у вас есть элементы, которые вы не хотите влиять, но это обостряет неравенство Document, Body, HTML и Window. Если это помогает...