Ответы:
Они оба будут иметь одинаковый эффект .
Однако, как указано в комментариях: $(window).scrollTop()
поддерживается больше веб-браузеров, чем $('html').scrollTop()
.
scrollTop
никуда не прокручивается, а просто возвращает текущее местоположение прокрутки.
scrollTop()
- геттер и scrollTop(value)
сеттер. scrollTop()
без аргументов не меняет позицию прокрутки.
Во-первых, вам нужно понять разницу между window
и document
. window
Объект является объектом на стороне клиента верхнего уровня. Над window
объектом ничего нет . JavaScript - это объектно-ориентированный язык. Вы начинаете с объекта и применяете методы к его свойствам или свойствам его групп объектов. Например, document
объект является объектом window
объекта. Чтобы изменить document
«S цвета фона, вы установите document
» s bgcolor
собственности.
window.document.bgcolor = "red"
Чтобы ответить на ваш вопрос, нет разницы в конечном результате между window
и document
scrollTop
. Оба будут давать одинаковый результат.
В целом использование в document
основном для регистрации событий и использовать , window
чтобы сделать такие вещи , как scroll
, scrollTop
, и resize
.
Кросс-браузерный способ сделать это
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()
всегда возвращайте 0 в Google Chrome.
$("body").scrollTop()
устарела, больше не работает на Chrome или FF . Вернется 0
У меня только что были похожие проблемы, scrollTop
описанные здесь.
В конце концов я обошел это на Firefox и IE с помощью селектора$('*').scrollTop(0);
Не идеально, если у вас есть элементы, на которые вы не хотите воздействовать, но это позволяет избежать неравенства Document, Body, HTML и Window. Если это поможет ...
$("html,body").scrollTop(val)
- никогда не было никаких проблем