он возвращает 0 в IE8 (хотя моя страница находится в режиме причуд, что может сыграть определенную роль)
Грег Огл
38
$ ('html'). scrollTop () не является кросс-браузерным (как установщик, он не работает, по крайней мере, в Chrome). Наиболее кроссбраузерный способ сделать это на данный момент: $ (window) .scrollTop () как метод получения, $ ('html, body'). ScrollTop (offset) как метод установки.
Георгий Иванкин
6
Согласно этой ссылке , без аргументов scrollTopникуда не прокручивается, а просто возвращает текущее местоположение прокрутки.
ИЛИ Mapper
3
@ d2burke scrollTop()- геттер и scrollTop(value)сеттер. scrollTop()без аргументов не меняет позицию прокрутки.
1
@ M98 window.scrollTo (x, y)
Бодман
36
Во-первых, вам нужно понять разницу между windowи document. windowОбъект является объектом на стороне клиента верхнего уровня. Над windowобъектом ничего нет . JavaScript - это объектно-ориентированный язык. Вы начинаете с объекта и применяете методы к его свойствам или свойствам его групп объектов. Например, documentобъект является объектом windowобъекта. Чтобы изменить document«S цвета фона, вы установите document» s bgcolorсобственности.
window.document.bgcolor ="red"
Чтобы ответить на ваш вопрос, нет разницы в конечном результате между windowи documentscrollTop. Оба будут давать одинаковый результат.
Нет разницы в конечном результате. Оба будут давать одинаковый результат.
Хусейн
Очевидно, что некоторые браузеры не поддерживают прокрутку окна, поскольку объект окна может не быть объектом, который переполняется.
Бодман
11
Какой браузер не поддерживает окно, будьте конкретны. Вот пример jsfiddle.net/7VRvj/4 . Проверьте это во всех браузерах и дайте мне знать, в каком браузере он не работает.
Хусейн
4
Кросс-браузерный способ сделать это
var top =($(window).scrollTop()|| $("body").scrollTop());
У меня только что были похожие проблемы, scrollTopописанные здесь.
В конце концов я обошел это на Firefox и IE с помощью селектора$('*').scrollTop(0);
Не идеально, если у вас есть элементы, на которые вы не хотите воздействовать, но это позволяет избежать неравенства Document, Body, HTML и Window. Если это поможет ...
Вы никогда не должны использовать * этот способ (на самом деле, избегать * вообще). Вместо нацеливания на один элемент, вы воздействуете на весь DOM. Огромный удар по производительности. Селекторы должны быть максимально точными.
Влад
2
Я лично всегда использовал $("html,body").scrollTop(val)- никогда не было никаких проблем
Ответы:
Они оба будут иметь одинаковый эффект .
Однако, как указано в комментариях:
$(window).scrollTop()
поддерживается больше веб-браузеров, чем$('html').scrollTop()
.источник
scrollTop
никуда не прокручивается, а просто возвращает текущее местоположение прокрутки.scrollTop()
- геттер иscrollTop(value)
сеттер.scrollTop()
без аргументов не меняет позицию прокрутки.Во-первых, вам нужно понять разницу между
window
иdocument
.window
Объект является объектом на стороне клиента верхнего уровня. Надwindow
объектом ничего нет . JavaScript - это объектно-ориентированный язык. Вы начинаете с объекта и применяете методы к его свойствам или свойствам его групп объектов. Например,document
объект является объектомwindow
объекта. Чтобы изменитьdocument
«S цвета фона, вы установитеdocument
» sbgcolor
собственности.Чтобы ответить на ваш вопрос, нет разницы в конечном результате между
window
иdocument
scrollTop
. Оба будут давать одинаковый результат.Проверьте рабочий пример на http://jsfiddle.net/7VRvj/6/
В целом использование в
document
основном для регистрации событий и использовать ,window
чтобы сделать такие вещи , какscroll
,scrollTop
, иresize
.источник
Кросс-браузерный способ сделать это
источник
$("body").scrollTop()
всегда возвращайте 0 в Google Chrome.$("body").scrollTop()
устарела, больше не работает на Chrome или FF . Вернется 0У меня только что были похожие проблемы,
scrollTop
описанные здесь.В конце концов я обошел это на Firefox и IE с помощью селектора
$('*').scrollTop(0);
Не идеально, если у вас есть элементы, на которые вы не хотите воздействовать, но это позволяет избежать неравенства Document, Body, HTML и Window. Если это поможет ...
источник
$("html,body").scrollTop(val)
- никогда не было никаких проблем