How to detect end of scrolling
javascript, jquery, scroll
Solution
is this what you're trying to achieve:
$('body').animate( {scrollTop: $('#foo').offset().top},1000,function(){
alert('stop scrolling');
});
http://jsfiddle.net/yhnKR/2/
You don't have to watch the scroll event if you animate the scroll with jquery.
Ok, if you want to detect when the user stopped scrolling, you'll have to use a timeout to check if the user stopped. Otherwise you'll get the event for each scroll step. Like this:
var delay = 1000;
var timeout = null;
$(window).bind('scroll',function(){
clearTimeout(timeout);
timeout = setTimeout(function(){
alert('scrolling stopped');
},delay);
});
http://jsfiddle.net/yhnKR/4/
Problem
i have some problems with my script. So, i want to detect end of my scrolling action. I have my alert when i'm scrolling but not if i'm ending it. Can you help me? This is my code: ``` 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; }); ``` and some fiddle: http://jsfiddle.net/yhnKR/