我有135个html元素,我希望它们可以随机地淡入和淡出,因此我为此编写了代码:

setInterval(function() {
    ggg = Math.floor(Math.random() * (50 - 1 + 1) + 1);
    $("#f" + ggg).fadeIn(500, function() {  });
    $("#f" + ggg).fadeOut(500);
}, 300);


setInterval(function() {
    ggg = Math.floor(Math.random() * (100 - 50 + 1) + 50);
    $("#f" + ggg).fadeIn(500, function() {  });
    $("#f" + ggg).fadeOut(500);
}, 300);

setInterval(function() {
    ggg = Math.floor(Math.random() * (135 - 100 + 1) + 100);
    $("#f" + ggg).fadeIn(500, function() {   });
    $("#f" + ggg).fadeOut(500);
}, 300);


但是问题是,即使Windows笔记本电脑没有问题,在Macbook Pro上我的i7占用了50%。有人可以重写代码以获得更好的性能吗?

最佳答案

animate = function() {
  ggg = Math.floor(Math.random() * (100 - 50 + 1) + 50);
  $("#f" + ggg).fadeIn(500, function() {
  $("#f" + ggg).fadeOut(500,animate);
  })
}
animate();


要延迟,请进行以下修改:

  $("#f" + ggg).delay(300).fadeOut(500,animate);


您也可以在开始另一个动画之前使用.stop(true,true)清除队列。

10-08 02:03