循环中两个div之间的淡入/淡出

我怎样才能让两个div在两者之间交替淡入/淡出,这样一次只能看到一个? 并使它成为一个永无止境的循环?

提前致谢!!

我知道它应该用.fadeOut和.fadeIn完成 – 但不知道如何让它一遍又一遍地循环。

这是我自己的版本

http://jsfiddle.net/3KydB/

window.switchIn = function () { $('.red').fadeToggle(function() { $('.blue').fadeToggle(function() { setTimeout(function() {window.switchOut();}, 500); }); }); } window.switchOut = function () { $('.blue').fadeToggle(function() { $('.red').fadeToggle(function() { setTimeout(function() {window.switchIn();}, 500); }); }); } setTimeout(function() {window.switchIn();}, 500) 

你的问题的解决方案比简单的fadeToggle更棘手,因为你不希望DIV同时显示。 关键是将淡入淡出动作链接在一起,因此下一个淡入淡出动作将不会执行,直到前一个淡入淡出动作完成。

从逻辑上讲,你想要:DIV1淡入,DIV1淡出,DIV2淡入,DIV2淡出,重复。

我在下面的解决方案将采用页面上的任意两个元素,并在显示任何一个元素的情况振荡其可见性。 iDuration以毫秒为单位指定每次转换的时间。

工作实例

HTML:

   

JavaScript的:

 function runToggle(iDuration, domFirst,domSecond) { $(domFirst).fadeToggle(iDuration, "linear",function() { $(domFirst).fadeToggle(iDuration, "linear",function() { $(domSecond).fadeToggle(iDuration,"linear",function() { $(domSecond).fadeToggle(iDuration,"linear",function() { setTimeout(function() { runToggle(domFirst,domSecond) ; },50); }); }); }); }); }; runToggle(1000, $('#div1'),$('#div2')); 

我使用setTimeout不是为了计时,而是为了释放JavaScript解释器,这样浏览器可以在这个淡入淡出循环运行时做其他事情。

你好吗,你可以做到这一点。

setInterval() – 以指定的时间间隔一遍又一遍地执行一个函数;

的setInterval(代码,毫秒,朗)

因此,您可以创建一个实现它的function。 一个例子

  

这必须工作,告诉我,如果没有。

祝好运!