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');
}