Ответы:
Они оба будут иметь одинаковый эффект .
Однако, как указано в комментариях: $(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)- никогда не было никаких проблем