15

スクリプトに問題があります。だから、スクロールアクションの終わりを検出したい。スクロールしているときはアラートが表示されますが、スクロールを終了しているときは表示されません。手伝って頂けますか?これは私のコードです:

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/

4

2 に答える 2

17

これはあなたが達成しようとしているものですか:

$('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/

于 2012-11-10T10:20:28.793 に答える
2

次のような新しいイベントを追加するかもしれません:

http://james.padolsey.com/javascript/special-scroll-events-for-jquery/

役立つだろう

于 2012-11-10T11:06:38.443 に答える