Jos*_*son 3 javascript jquery loops
作为了解更多关于jQuery的一种方法,我正在尝试创建一个能够滚动到页面底部的函数,返回到顶部,然后在无限循环中重新开始.
到目前为止,我有这个
var scroll = $(document).scrollTop();
setInterval(function(){
scroll += 5;
$(document).scrollTop(scroll);
}, 10);
Run Code Online (Sandbox Code Playgroud)
这将滚动到页面底部.
当它到达底部时,它需要设置一个标志,可能var direction = 1
是1下降,0上升.
现在我需要添加类似的东西
if(direction){
// scroll down
} else {
// scroll up
}
Run Code Online (Sandbox Code Playgroud)
所以我IF会不断地检查值direction并将scrollvar 增加+ = 5或 - = 5
这听起来合乎逻辑还是有更简单的方法来实现这一点?
编辑
这里是一个工作版本somethinghere的建议
您应该使用jQuerys回调来创建无限递归函数.只需在animate函数中声明后添加一个函数,然后调用相同的函数,但反转传递的boolean.
此外,动画将为您增加非常好和顺利!
function scrollTopOrBottom(top){
if(top) $("body, html").animate({scrollTop: 0}, function(){
scrollTopOrBottom(false);
});
else $("body, html").animate({scrollTop: $("document").height()}, function(){
scrollTopOrBottom(true);
});
}
scrollTopOrBottom(false);
Run Code Online (Sandbox Code Playgroud)
更新:如上所述,这可能会产生**ahem**Stack Overflow,但此问题并不关心.如果您想要安全,请使用stop()每个$("body, html")语句之后停止调用,如果另一个语句正在进行中,则延迟溢出.
注意:您也可以将if语句包装起来,{}但由于它是一个语句,我发现它更易读,更像句子而不是类似代码.但那是偏好.