Javascript 递归调用java脚本动画函数,每次循环后计时
在ready函数scrollDown动画开始中,在scrollDown的完整回调侦听器中,我调用了scrollUp函数开始向上滚动动画。循环完成后,向下滚动动画需要一些时间重新开始更重要的是,每个循环完成后延迟时间增加。Javascript 递归调用java脚本动画函数,每次循环后计时,javascript,animation,jquery-animate,Javascript,Animation,Jquery Animate,在ready函数scrollDown动画开始中,在scrollDown的完整回调侦听器中,我调用了scrollUp函数开始向上滚动动画。循环完成后,向下滚动动画需要一些时间重新开始更重要的是,每个循环完成后延迟时间增加。 $(document).ready(function(){ scrollDown(); }); function scrollDown(){ $('html, body').animate({ scrollTop:$("#4").offset().
$(document).ready(function(){
scrollDown();
});
function scrollDown(){
$('html, body').animate({
scrollTop:$("#4").offset().top-100
},
{
duration:2000,
complete: function(){
scrollUp();
}
});
}
function scrollUp(){
$('html, body').animate({
scrollTop:$("#1").offset().top-100
},
{
duration:2000,
complete: function(){
scrollDown();
}
});
}
添加$('html,body').stop()完成了这个技巧,现在动画是平滑的,没有延迟时间。但是为什么我必须调用stop()函数呢?因为我已经实现了完成回调
$(document).ready(function(){
scrollDown();
});
function scrollDown(){
$('html, body').stop(); // no idea why I need to call this stop function
$('html, body').animate({
scrollTop:$("#4").offset().top-100
},
{
duration:2000,
complete: function(){
scrollUp();
}
});
}
function scrollUp(){
$('html, body').stop(); // no idea why I need to call this stop function
$('html, body').animate({
scrollTop:$("#1").offset().top-100
},
{
duration:2000,
complete: function(){
scrollDown();
}
});
}