我目前正在使用以下代码在滑动检测脚本的回调中自动滚动到顶部。我想添加在动画期间用户单击屏幕时取消动画的功能。
$('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 的评论删除了参数。
也许是这样的:
$('body,html').animate({
scrollTop: 0
}, 3000).click(function() {
$('body,html').stop();
});
示例:http: //jsfiddle.net/DJ8Re/1/
我不太确定点击检测,无论如何,这将在 3 秒后停止动画:
$('body,html').animate({
scrollTop: 0
}, 6000);
setTimeout(function() { $('html,body').stop(); }, 3000);
有关 stop() 的所有信息:http: //api.jquery.com/stop/