Как определить конец прокрутки
У меня есть некоторые проблемы с моим 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/
Ответ 2
возможно добавление новых событий:
http://james.padolsey.com/javascript/special-scroll-events-for-jquery/
поможет