Próbuję przewijać w dół o 100 pikseli za każdym razem, gdy użytkownik zbliża się do początku dokumentu.
Mam funkcję wykonywaną, gdy użytkownik zbliża się do początku dokumentu, ale funkcja .scrollTo nie działa.
Ustawiłem alert przed i przed, aby sprawdzić, czy to rzeczywiście była linia, czy nie, która go zatrzymywała i tylko pierwszy alert się wyłącza, oto kod:
alert("starting");
$.scrollTo({ top: '+=100px', left: '+=0px' }, 800);
alert("finished");
Wiem, że mam poprawnie link do strony jquery, ponieważ używam wielu innych funkcji jquery i wszystkie działają dobrze. Próbowałem też usunąć „px” z góry i nie robi to różnicy.
Odpowiedzi:
Jeśli to nie działa, dlaczego nie spróbujesz użyć metody scrollTop jQuery?
Jeśli chcesz płynnie przewijać, możesz użyć podstawowej funkcji setTimeout / setInterval języka JavaScript, aby przewijać w krokach co 1 piksel przez określony czas.
źródło
źródło
html, body
zamiast tylko html?body
przerywa to w Chrome 4: stackoverflow.com/questions/1890995/ ...scrollTop: 0
działa również dobrze. Ale czas trwania skraca się. Działa dobrze, jeśli ustawisz prędkość 1000jQuery obsługuje teraz scrollTop jako zmienną animacji.
Nie musisz już ustawiaćTimeout / setInterval, aby płynnie przewijać.
źródło
$("#id").offset().top
zamiast tego?Aby obejść problem z
html
vsbody
, naprawiłem to, nie animując bezpośrednio css, ale raczej wzywającwindow.scrollTo();
każdy krok:Działa to ładnie bez żadnych problemów z odświeżaniem, ponieważ używa JavaScript w różnych przeglądarkach.
Zajrzyj na http://james.padolsey.com/javascript/fun-with-jquerys-animate/, aby uzyskać więcej informacji na temat tego, co możesz zrobić z funkcją animacji jQuery.
źródło
window.pageYOffset
na$(window).scrollTop()
iwindow.scrollTo(0, val)
na,$(window).scrollTop(val)
więc nie muszę się martwić o zgodność przeglądarki.Wygląda na to, że masz trochę błędną składnię ... Zakładam na podstawie twojego kodu, że próbujesz przewinąć w dół o 100 pikseli w 800 ms, jeśli tak, to działa (używając scrollTo 1.4.1):
źródło
Właściwie coś takiego
będzie ładnie działać i wspierać wyściółkę. Możesz również łatwo obsługiwać marginesy - szczegóły znajdziesz poniżej
źródło