0

我想创建一些在 div 内随机向上和向下移动的图块,该 div 在具有“溢出:隐藏”属性的 div 内

setInterval(function(){
      for(i=0;i<len;i++){
        if($(".contacttiles").eq(i).attr('noanimate')!='true'){
          $(".contacttiles").eq(i).delay(Math.floor((Math.random()*3000)+1)).animate({top:-120},1000,function(){
          $(".contacttiles").eq(i).delay(3000).animate({top:0},1000);
          })
        }
      }
    })
  },7000)

这里的'contacttiles'是包含应该移动的div的类,动画在第一部分工作得很好。瓷砖上升。但第二部分不起作用。我在第二部分尝试了另一个元素的警报('hi')和动画,它们都起作用了。但是,上述代码的第二部分不起作用。

4

1 回答 1

2

该变量i将是undefined您传递给的函数delay运行的时间。

尝试确定 for 循环的内容:

setInterval(function () {
    for (var i = 0; i < len; i++) {
        (function (i) {
            if ($(".contacttiles").eq(i).attr('noanimate') != 'true') {
                $(".contacttiles").eq(i).delay(Math.floor((Math.random() * 3000) + 1)).animate({
                    top: -120
                }, 1000, function () {
                    $(".contacttiles").eq(i).delay(3000).animate({
                        top: 0
                    }, 1000);
                })
            }
        })(i)
    }
}, 7000)
于 2013-05-14T22:03:44.517 回答