Как определить конец прокрутки

У меня есть некоторые проблемы с моим script. Итак, я хочу обнаружить конец моего действия прокрутки. У меня есть мое предупреждение, когда я прокручиваю, но не, если я закончу его. Вы можете мне помочь? Это мой код:

var animatable = $('body, html');
var animating = false;
animatable.animate( {scrollTop: $('#foo').offset()})

$(window).scroll(function(e) { 
       if(!animating){
           animatable.stop(false, true); 
           alert('stop scrolling');
       }
       animating = false;
});​

и некоторые скрипты: http://jsfiddle.net/yhnKR/

Ответ 1

- это то, чего вы пытаетесь достичь:

$('body').animate( {scrollTop: $('#foo').offset().top},1000,function(){
 alert('stop scrolling');   
});

http://jsfiddle.net/yhnKR/2/

Вам не нужно смотреть событие прокрутки, если вы анималируете прокрутку с помощью jquery.


Хорошо, если вы хотите определить, когда пользователь остановил прокрутку, вам нужно будет использовать таймаут, чтобы проверить, остановлен ли пользователь. В противном случае вы получите событие для каждого шага прокрутки. Вот так:

var delay = 1000;
var timeout = null;
$(window).bind('scroll',function(){
    clearTimeout(timeout);
    timeout = setTimeout(function(){
        alert('scrolling stopped');
    },delay);
});​​​​​​​​​​

http://jsfiddle.net/yhnKR/4/