2012-03-23 20 views
6

Próbuję zaimplementować kod na mojej stronie internetowej, aby automatycznie przewinąć po załadowaniu strony. Użyłem funkcji JavaScript do automatycznego przewijania i zadzwoniłem do mojej funkcji po załadowaniu strony, ale strona nadal nie jest płynnie przewijana! Czy istnieje sposób na płynne przewijanie strony?płynne przewijanie automatyczne za pomocą javascript

Oto mój funkcji JavaScript:

function pageScroll() { 
     window.scrollBy(0,50); // horizontal and vertical scroll increments 
     scrolldelay = setTimeout('pageScroll()',100); // scrolls every 100 milliseconds 
} 

Odpowiedz

15

Nie jest płynny, ponieważ liczba zwojów wzrasta o 50 co 100 milisekund.

zmienić to i kwotę przewijaną na mniejszą liczbę, aby funkcja działała z iluzją bycia bardziej "gładką".

zmniejszyć prędkość, aby zrobić to szybciej lub wolniej.

function pageScroll() { 
    window.scrollBy(0,1); 
    scrolldelay = setTimeout(pageScroll,10); 
} 

pojawi się dużo gładsza, spróbuj;)

+1

thanx swoich dzieł wielkich – hiteshtr

+0

może u powiedz mi sposób w tym kodzie tak, że mogę zatrzymać automatyczne przewijanie, gdy użytkownik korzysta z myszki, aby przewijać – hiteshtr

+0

, jeśli jest to prawidłowa odpowiedź to pamiętaj, aby oznaczyć go tak;) również, że wymagałoby innej funkcji najłatwiej zrobić za pomocą jQuery i sprawdzenie go jako zdarzenie –

1

Możecie zajrzeć do kodu źródłowego dla jQuery ScrollTo plug-in, który przewija się płynnie. A może po prostu użyj wtyczki zamiast przewracać własną funkcję.

0

Od czasu, gdy oznaczyłeś pytanie jako "jquery", czemu nie wypróbujesz czegoś takiego jak .animate()? Ta konkretna funkcja jquery została zaprojektowana w celu płynnego animowania wszystkich rodzajów właściwości, w tym numerycznych właściwości CSS, a także pozycji przewijania.

+0

Może miał na myśli to, że rozwiązanie może być napisane w jQuery lub w czystym JS. –

8

spróbuje użyć jQuery, a ten kod:

$(document).ready(function(){ 
    $('body,html').animate({scrollTop: 156}, 800); 
}); 

156 - pozycja przewijania do (PX), od początku strony.
800 - czas przewijania (ms)

+1

Tylko korekta, 800 jest czas trwania animacji, a nie prędkość – Dogoku

1

Płynnie działające animacje zależy na maszynie klienta. Bez względu na to, jak uczciwie kodujesz, nigdy nie będziesz usatysfakcjonowany sposobem, w jaki twoja animacja działa w systemie pamięci RAM o pojemności 128 MB.

Oto jak można przewijać za pomocą jQuery:

$(document).scrollTop("50"); 

kupili także wypróbować AutoScroll Plugin.