Javascript 滚动后如何执行函数(jquery)
我需要滚动页面,然后执行一个函数。这个代码给了我一个错误Javascript 滚动后如何执行函数(jquery),javascript,jquery,Javascript,Jquery,我需要滚动页面,然后执行一个函数。这个代码给了我一个错误 No function was found that matched the signature provided. window.scrollTo(0, 100, { onAfter : function(){ alert('test'); } }); 如果删除第三个(设置)参数,则页面将滚动。我还尝试: $('html,body').animate({ scrollTop: 100, complete:
No function was found that matched the signature provided.
window.scrollTo(0, 100, {
onAfter : function(){
alert('test');
}
});
如果删除第三个(设置)参数,则页面将滚动。我还尝试:
$('html,body').animate({
scrollTop: 100,
complete: function(){alert();}
}, 0);
它滚动页面,但从不调用警报
也许我错过了一些小东西,但我不知道它是什么!有很多例子,但没有一个适合我。它们通常有额外的参数和设置,我不清楚除了jQuery之外,是否还有一些使用特殊的库
编辑:2要求:它必须是即时滚动,必须有一个回调函数完成后。仅仅在下一行编写下一个函数是不起作用的。我的iPhone仍然无法正常工作,我想是因为scrollTop仍然很慢。这不是
.animate()
方法的工作方式。从正式jQuery文档():
.animate(属性[,持续时间][,放松][,完成])
您需要将成功回调作为单独的参数传递,而不是第一个参数的属性。另外,为什么是0持续时间
试试这个:
$('html,body').animate(
{scrollTop: 100},
function () {
alert();
}
);
如果您想在没有动画的情况下完成此操作,则有.scrollTop()
方法():
使用
animate
的解决方案对我不起作用-该功能是在滚动之前执行的。所以我利用了同步性,编写了两个工作版本的代码:
$(window).scrollTop(0);
alert('test');
或者在第二个版本中选中(如果):
$(window).scrollTop(0);
if ($(window).scrollTop() === 0) {
alert('test');
}
动画是缓慢的(我真的希望它是即时的)。scrollTop示例在完成时不调用函数。为什么要在操作完成时调用函数,而此操作需要0秒?这没有道理。您应该按照下一条指令执行。为什么不使用.scrollTop()
方法呢?看起来你没有在这里设置任何动画。完成后我需要一个回调函数。仅在scrollTop()之后编写下一个函数不起作用。我的iPhone滚动速度很慢(即使使用scrolltop),并且在滚动完成之前按顺序完成了下一个功能。请尝试使用.promise().done(function(){/*function after scroll*/})
,这里是关于JSFIDLE的示例,我不确定我是否理解。这将等待半秒钟,然后执行一个函数,无论何时完成滚动,不是吗?是的,这就是要点。我已经编辑了我的答案,以包括另一个解决方案,这可能是您正在寻找的。是的,第一个工作,谢谢!(取下另一个,我将其标记为正确)
$(window).scrollTop(0);
alert('test');
$(window).scrollTop(0);
if ($(window).scrollTop() === 0) {
alert('test');
}