現在、次のコードを使用して、スワイプ検出スクリプトからのコールバックで一番上に自動スクロールしています。アニメーション中にユーザーが画面をクリックすると、アニメーションをキャンセルする機能を追加したいと考えています。
$('body,html').animate({
scrollTop: 0
}, 300);
このキャンセルを行うにはどうすればよいですか?
現在、次のコードを使用して、スワイプ検出スクリプトからのコールバックで一番上に自動スクロールしています。アニメーション中にユーザーが画面をクリックすると、アニメーションをキャンセルする機能を追加したいと考えています。
$('body,html').animate({
scrollTop: 0
}, 300);
このキャンセルを行うにはどうすればよいですか?
メソッドを使用し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 のコメントごとにパラメーターを削除しました。
クリック検出についてはよくわかりませんが、とにかく、これにより 3 秒後にアニメーションが停止します。
$('body,html').animate({
scrollTop: 0
}, 6000);
setTimeout(function() { $('html,body').stop(); }, 3000);
stop() に関するすべての情報: http://api.jquery.com/stop/
多分このように:
$('body,html').animate({
scrollTop: 0
}, 3000).click(function() {
$('body,html').stop();
});