我目前正在使用以下代码自动滚动到滑动检测脚本的回调顶部。我想添加在用户在动画过程中单击屏幕时取消动画的功能。点击取消滚动到顶部动作
$('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();
});
我不太肯定点击检测,无论如何,这将在3秒后停止动画:
$('body,html').animate({
scrollTop: 0
}, 6000);
setTimeout(function() { $('html,body').stop(); }, 3000);
有关停止所有的信息()的http://api.jquery.com/stop/
可能重复[在用户交互后取消滚动](http://stackoverflow.com/questions/6160058/cancel-scrolling-after-user-interaction) –