Яка різниця між:
$(window).scrollTop()
і
$(document).scrollTop()
Дякую.
Яка різниця між:
$(window).scrollTop()
і
$(document).scrollTop()
Дякую.
Відповіді:
Вони обидва матимуть однаковий ефект .
Однак, як зазначено в коментарях: $(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);
Не ідеально, якщо у вас є елементи, які ви не хочете виконувати, але це обходиться між невідповідністю документа, тіла, HTML та вікна. Якщо це допоможе ...
$("html,body").scrollTop(val)
- ніколи не мав жодних проблем