2012-09-24 17 views
5

Powiel możliwe:
Javascript: do an action after user is done scrollingJak wiemy zdarzenie Scroll zakończył z jQuery

pożary zdarzeń Scroll gdy użytkownik uruchamia przewijanie strony, prawda? Jak się dowiedzieć, czy on jest skończony? Chcę wywołać funkcję po przewinięciu. Czy ktoś ma jakiś pomysł?

Dzięki!

P.S. Z jQuery proszę, ale czysty JS też jest w porządku.

+0

Nie. Zdarzenie 'scroll' jest uruchamiane za każdym razem, gdy strona przesunie pojedynczy piksel. Sprawdź [zdarzenie fire scroll tylko raz na sekundę] (http://stackoverflow.com/q/9613594/1048572) – Bergi

+0

@ FrançoisWahl Nie chcę używać $ .doTimeout – Mahdi

+0

@Bergi dzięki, ale czy masz jakieś referencje za to? Wygląda na to, że po prostu odpala się, gdy zaczniesz przewijać, a nie ciągle ... – Mahdi

Odpowiedz

8

Można to osiągnąć za pomocą setTimeout. można zmienić wartość limitu czasu (im przy użyciu 100) zgodnie z wymaganiami.

var timeoutId; 
$(selector).scroll(function(){ 
    if(timeoutId){ 
     clearTimeout(timeoutId); 
    } 
    timeoutId = setTimeout(function(){ 
    // your code 
    }, 100); 

}); 
+0

Dzięki, Czy jest jakiś inny sposób poza ustawieniem Timeoutów? Mam na myśli coś oryginalnego i oryginalnego dla tego? – Mahdi

+1

timeout * są * natywne, to nie jest żadna wtyczka –

+0

@Mahdi w tej chwili nie ma – Christoph