如何在jQuery上循环动画

如何在jQuery上循环动画,jquery,loops,animation,onload,Jquery,Loops,Animation,Onload,我只是想知道如何循环我的动画(1个水平移动的矩形)。 另外,我如何在页面完全加载后制作动画,而不是像我现在的代码所示,通过单击按钮来激发动画。 对不起,我是jQuery新手,刚刚习惯了基本知识。谢谢你的帮助 $(document).ready(function(){ $("button").click(function(){ $("#div2").animate({right:'1000px'}, 7000); }); }); HTML 如果我理解正确,您只需删除单击处理程序,

我只是想知道如何循环我的动画(1个水平移动的矩形)。 另外,我如何在页面完全加载后制作动画,而不是像我现在的代码所示,通过单击按钮来激发动画。 对不起,我是jQuery新手,刚刚习惯了基本知识。谢谢你的帮助

$(document).ready(function(){
  $("button").click(function(){
    $("#div2").animate({right:'1000px'}, 7000);
  });
});
HTML


如果我理解正确,您只需删除单击处理程序,如下所示:

$(document).ready(function(){
   $("#div2").animate({right:'1000px'}, 7000);
});

这样,动画将自动启动,而无需单击将其放入函数中,然后让
animate()
方法在其回调参数中调用函数:

function animateRect(){
    $("#div2").css({right:0}).animate({right:'1000px'}, 7000, animateRect);
}
我已经在那里添加了一个
css()
方法来重置元素的正确位置,否则将只有一个动画


(个人意见)当页面加载时,你应该仔细考虑你是否真的需要动画。每次移动/调整元素大小时,动画都会导致整个页面重新流动(重新计算位置)。它可能不会对页面产生负面影响,但如果这是JavaScript应用程序的一部分,它只会带来额外的开销。您的问题解决了吗?
function animateRect(){
    $("#div2").css({right:0}).animate({right:'1000px'}, 7000, animateRect);
}