0

現在、次のコードを使用して、スワイプ検出スクリプトからのコールバックで一番上に自動スクロールしています。アニメーション中にユーザーが画面をクリックすると、アニメーションをキャンセルする機能を追加したいと考えています。

$('body,html').animate({
    scrollTop: 0
}, 300);

このキャンセルを行うにはどうすればよいですか?

4

3 に答える 3

1

メソッドを使用しstopてアニメーションを停止します。ユーザーが自動的に画面の上部に移動しないように、必ずパラメーターを渡しfalseてください。jumpToEnd

$(function() {
    //Substitute with whatever kicks off this scroll in your app.
    $('button').on('click', function(evt) {
        $('body,html').animate({
            scrollTop: 0
        }, 3000);

        evt.stopPropagation();
    });

    $(window).on('click', function(evt) {
        $('body,html').stop();
    });
});

実際の例- http://jsfiddle.net/FcLbH/2/

編集- stop@AvL のコメントごとにパラメーターを削除しました。

于 2012-05-23T14:32:04.203 に答える
0

クリック検出についてはよくわかりませんが、とにかく、これにより 3 秒後にアニメーションが停止します。

$('body,html').animate({
    scrollTop: 0
}, 6000);

setTimeout(function() { $('html,body').stop(); }, 3000);

stop() に関するすべての情報: http://api.jquery.com/stop/

于 2012-05-23T14:59:37.090 に答える
0

多分このように:

$('body,html').animate({
    scrollTop: 0
}, 3000).click(function() {
    $('body,html').stop();
});

例: http://jsfiddle.net/DJ8Re/1/

于 2012-05-23T14:26:41.650 に答える