首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何让这段代码循环?

我如何让这段代码循环?
EN

Stack Overflow用户
提问于 2011-11-08 05:16:20
回答 6查看 111关注 0票数 2

我想知道如何使下面的代码循环,我知道我需要一些回调/setInterval,但我如何实现它?非常感谢!

代码语言:javascript
复制
$('.1').fadeIn(2500, function() {
    $('.2').fadeIn(2500, function() {
        $('.3').fadeIn(2500, function() {
            $('.3').fadeOut(2500, function() {
                $('.2').fadeOut(2500, function() {
                    $('.1').fadeOut(2500, function() {
                    });
                });
            });
        });
    });
});

附注:此代码在准备就绪的文档上运行

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-08 05:21:08

根据OP的评论,这应该是一个无限循环的淡入淡出。请尝试以下操作

代码语言:javascript
复制
(function () {
  var all = [1, 2, 3];
  var rev = all.reverse();

  var doFadeOut = function (index) {
    $('.' + rev[index]).fadeOut(2500, function () {
      index++;
      if (index < rev.length) {
        doFadeOut(index);
      } else {
        doFadeIn(0);
      }
    });
  };

  var doFadeIn = function (index) {
    $('.' + all[index]).fadeIn(2500, function () {
      index++;
      if (index < all.length) {
        doFadeIn(index);
      } else {
        doFadeOut(0);
      }
    });
  };

  doFadeIn(0);
})();
票数 6
EN

Stack Overflow用户

发布于 2011-11-08 05:19:26

只需将其全部放入一个函数中,然后让该函数调用自身:

代码语言:javascript
复制
function doFade(){
$('.1').fadeIn(2500, function() {
    $('.2').fadeIn(2500, function() {
        $('.3').fadeIn(2500, function() {
            $('.3').fadeOut(2500, function() {
                $('.2').fadeOut(2500, function() {
                    $('.1').fadeOut(2500, function() {
                         doFade()
                    });
                });
            });
        });
    });
});
}
票数 1
EN

Stack Overflow用户

发布于 2011-11-08 05:24:48

把它从document.ready中拿出来。让它成为它自己的函数,并在document.ready中用setInterval或setTimeout调用它:

代码语言:javascript
复制
function myCrazyLoop() {
    $('.1').fadeIn(2500, function() {
        $('.2').fadeIn(2500, function() {
           $('.3').fadeIn(2500, function() {
                $('.3').fadeOut(2500, function() {
                   $('.2').fadeOut(2500, function() {
                       $('.1').fadeOut(2500, function() { });
                   });
                });
           });
        });
    });
}

然后,在document.ready中:

代码语言:javascript
复制
setInterval('myCrazyLoop()',x); // where x is your interval in miliseconds

或setTimeout('myCrazyLoop()',x);//相同....超时运行一次;间隔,永远

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8042716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档