Ustawiam przewijanie strony do góry po kliknięciu przycisku. Ale najpierw użyłem instrukcji if, aby sprawdzić, czy góra strony nie jest ustawiona na 0. Następnie, jeśli nie jest to 0, animuję stronę, aby przewijała się do góry.
var body = $("body");
var top = body.scrollTop() // Get position of the body
if(top!=0)
{
body.animate({scrollTop:0}, '500');
}
Trudną częścią jest teraz animowanie czegoś PO przewinięciu strony do góry. Więc moja następna myśl to dowiedzieć się, jaka jest pozycja strony. Więc użyłem dziennika konsoli, aby się dowiedzieć.
console.log(top); // the result was 365
Dało mi to wynik 365, zgaduję, że jest to numer pozycji, na której byłem tuż przed przewinięciem do góry.
Moje pytanie brzmi: jak ustawić pozycję na 0, aby móc dodać kolejną animację, która działa, gdy strona jest na 0?
Dzięki!
jquery
jquery-animate
scrolltop
Juan Di Diego
źródło
źródło
Odpowiedzi:
Aby to zrobić, możesz ustawić funkcję zwrotną dla polecenia animacji, która zostanie wykonana po zakończeniu animacji przewijania.
Na przykład:
Tam, gdzie jest ten kod alertu, możesz wykonać więcej javascript, aby dodać do dalszej animacji.
Również „swing” służy do ustawiania luzowania. Sprawdź http://api.jquery.com/animate/, aby uzyskać więcej informacji.
źródło
Wypróbuj ten kod:
źródło
$("html")
należy użyć zamiast tego, ponieważ w twoim przypadku, jeśli dodasz funkcję zwrotną, zostanie ona wywołana dwukrotnie, raz dla html i raz dla body . A używanie ciała nic nie daje.Użyj tego:
źródło
do tego możesz użyć metody callback
źródło
Spróbuj tego zamiast tego:
źródło
Proste rozwiązanie:
przewijanie do dowolnego elementu według ID lub NAZWY:
kod:
źródło
var
nie trzeba nadpisywać globalnej (jeśli istnieje zmienna globalna o tej nazwie)Kod z funkcją kliknięcia ()
.toTop
= klasa klikniętego elementu możeimg
luba
źródło
źródło
musisz to zobaczyć
lub wypróbuj je
źródło
źródło
możesz użyć zarówno klasy CSS, jak i identyfikatora HTML, aby zachować symetrię, na przykład zawsze używam klasy CSS
źródło