Odpowiedzi:
Oba będą miały ten sam efekt .
Jednak, jak wskazano w komentarzach: $(window).scrollTop()jest obsługiwany przez więcej przeglądarek internetowych niż $('html').scrollTop().
scrollTopnigdzie nie przewija się, a jedynie zwraca bieżącą lokalizację przewijania.
scrollTop()jest geterem i scrollTop(value)setera. scrollTop()bez argumentów nie zmienia pozycji przewijania.
Po pierwsze, musisz zrozumieć różnicę między windowi document. windowObiekt jest obiektem najwyższego poziomu po stronie klienta. Nad obiektem nie ma nic window. JavaScript jest językiem obiektowym. Zaczynasz od obiektu i stosujesz metody do jego właściwości lub właściwości jego grup obiektów. Na przykład documentobiekt jest obiektem windowobiektu. Aby zmienić document„s kolor tła, można ustawić document” s bgcolornieruchomości.
window.document.bgcolor = "red"
Aby odpowiedzieć na twoje pytanie, nie ma różnicy w wyniku końcowym pomiędzy windowi document scrollTop. Oba dają taką samą moc wyjściową.
W powszechnym użyciu documentgłównie do rejestracji zdarzeń i wykorzystywać windowdo robienia rzeczy, jak scroll, scrollTopi resize.
Można to zrobić w różnych przeglądarkach
var top = ($(window).scrollTop() || $("body").scrollTop());
$("body").scrollTop()zawsze zwracaj 0 w Google Chrome.
$("body").scrollTop()jest przestarzałe, nie działa już w Chrome ani FF . Zwróci 0
Właśnie miałem podobne problemy scrollTop opisanym tutaj.
W końcu udało mi się to obejść na Firefox i IE za pomocą selektora$('*').scrollTop(0);
Nie jest to idealne, jeśli masz elementy, których nie chcesz modyfikować, ale omija różnice między dokumentem, treścią, HTML i oknem. Jeśli to pomaga ...
$("html,body").scrollTop(val)- nigdy nie miałem żadnych problemów