Jquery 使用topscroll的动画创建无限循环

Jquery 使用topscroll的动画创建无限循环,jquery,Jquery,我正在尝试循环一个函数/动画。我想要一个页面滚动到底部,然后跳到顶部并无限地执行。 我有这样做的代码,但只有一次: $(document).ready(pagescroll); function pagescroll() { var z = document.getElementById('main_container').clientHeight + 2400; var speed = z * 2; window.scroll(0,0); $('body, ht

我正在尝试循环一个函数/动画。我想要一个页面滚动到底部,然后跳到顶部并无限地执行。 我有这样做的代码,但只有一次:

$(document).ready(pagescroll);
function pagescroll() {
    var z = document.getElementById('main_container').clientHeight + 2400;
    var speed = z * 2;
    window.scroll(0,0);
    $('body, html').animate({ scrollTop: z }, { easing: "linear", duration: speed });
}

main_container
是一个横跨页面的div。我尝试添加
pagesroll()
设置动画之后,移除
窗口。滚动(0,0)
,并在
持续时间之后添加
页面滚动
页面滚动()。我发现的每个例子都不起作用。如何将无限循环添加到此函数?

您需要将回调添加到
animate
函数,如下所示:

$('body,html').animate(
    {scrollTop: z},
    {easing: "linear", duration: speed}, 
    function() {
        $('body,html').scrollTop( 0 ); // scroll to top when animation finished
        pagescroll(); // call scroll function again
    }
);

在这种情况下,您的函数将以递归方式工作。

这是您正在寻找的一种奇怪的行为,但谁知道呢…它不会在网站上实现-基本上,它就像结束学分一样,有人可以轻松地将名称添加到XML文件并在循环中显示它。整个东西都会投影到墙上。它会滚动到所说的位置,但不会跳回到顶部。@user2584809尝试添加
窗口。滚动(0,0)
$('body,html')之前还是没什么。看起来在完成动画后,它并没有调用其他函数(我将整个滚动回调更改为简单警报,但什么也没发生)。为了测试的目的,我还修改了它,使它具有恒定的topscroll位置和持续时间。您可以创建come-jsFiddle示例或其他什么吗?这里:这不是完全相同的事情,因为我通过从XML文件导入数据来生成“文本”段落。