Яка різниця між:
$(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)- ніколи не мав жодних проблем