1

基于一些较早的问题,我尝试无限次运行我的函数。但它仍然不起作用。如果我运行脚本,它会在奇怪的时刻被破坏,然后再次运行脚本,间隔很长。任何人都可以帮助我让这个脚本运行没有间隔和停止吗?谢谢。

<script type="text/javascript">
$("#go").hide().ready(function(){
animatie();
});
var d = 0;
function animatie() {
 for(var i = 0; i < 3; ++i){
  var b = ".block"+i;
  $(b).hide().delay(d).fadeIn(2000);
  $(b).hide().delay(1000).fadeOut(2000);
  d += 4000;
 }
}
window.setInterval(animatie, 13000);
</script>
4

1 回答 1

0

您可能希望重置d0每次setInterval触发。此外,也许4000应该5000改为(2000 + 1000 + 2000)。最后,您不需要.hide()两次:http: //jsfiddle.net/nZHCB/

function animatie() {
 var d = 0;
 for(var i = 0; i < 3; ++i){
  var b = ".block"+i;
  $(b).hide().delay(d).fadeIn(2000).delay(1000).fadeOut(2000);
  d += 5000;
 }
}
animatie();
window.setInterval(animatie, 15000);

也就是说,您还可以使用一个函数来迭代一个元素。最后一个动画 ( .fadeOut) 完成后,使用下一个元素再次调用该函数:http: //jsfiddle.net/nZHCB/2/

$("div").hide();

(function animatie(i) {
    var b = ".block" + i;
    $(b).fadeIn(2000).delay(1000).fadeOut(2000, function() {
        animatie((i + 1) % 3);
    });
})(0);
于 2013-02-07T15:57:03.627 回答