2013-07-31 57 views
0

我有三个div,
newDivforWraping1,#newDivforWraping5,#newDivforWraping9如何淡出一个div并在另一个div淡入淡出同时使用jquery

我想淡入newDivforWraping1股利和淡出#newDivforWraping5,#newDivforWraping9

,之后淡出 newDivforWraping1,#newDivforWraping9
和淡入#newDivforWraping5 and finally fadeIn#newDivforWraping9`

和淡出#newDivforWraping1,#newDivforWraping9

在屏幕上的任何一点,我只看到div。

<div1>--fade In 
<div2>--fade Out 
<div3>--fade Out 

<div2>--fade In 
<div3>--fade Out 
<div1>--fade Out 

<div3>--fade In 
<div1>-fade Out 
<div2> -- fade Out 

敬请注意,无论格出现在屏幕上,它是在屏幕上的同一位置。我已经设置了使用setInterval的定时器来重复这个过程,但是当用户将鼠标悬停在它上面时,我希望它暂停(如果不可能,则停止)。并在鼠标悬停在其上时恢复。 我在这里有my code,你可以在这里看到我目前部分工作的解决方案。感谢您的帮助..

+0

听起来像是你正在寻找某种转盘的..?有很多可供选择的。 – gibberish

回答

1

试试吧

(function() { 
var i = 1; 
var timer=setInterval(function() { 
    if(i>3) {i=1}; 
    runAnimation(i, i, i); 
    i++; 
},1000); //increase it to 3000 if each fade in runAnimation is up to 1000 on function runAnimation 


function runAnimation(a,b,g){ 
    c = a == 1? 'fadeIn' : 'fadeOut'; 
    d = b == 2? 'fadeIn' : 'fadeOut'; 
    h = g == 3? 'fadeIn' : 'fadeOut'; 

    $("#newDivforWraping1")[c](0); //if a ==1 then $("#newDivforWraping1").fadeIn(0) else $("#newDivforWraping1").fadeOut(0) 
    $("#newDivforWraping5")[d](0); 
    $("#newDivforWraping9")[h](0); 
} 

$("#newDivforWraping1,#newDivforWraping5,#newDivforWraping9").hover(function() { 
    clearInterval(timer); 
}, function(){ 
    timer=setInterval(function() { 
    if(i>3) {i=1}; 
    runAnimation(i, i, i); 
    i++; 
},1000); 
});  

})(); 

演示

http://jsfiddle.net/RQNrt/32/

+0

太棒了!这个解决方案以我想要的方式工作。如果你能解释runAnimation函数是如何工作的,那么对我和其他人来说,理解它将会很有用。 –

+1

c,d,h是将使用哪个函数“淡入淡出”(输入/输出)的名称。问题只是在每个时间间隔循环中旋转激活这些标志a,b或g。您可以将每个衰减调整到1000毫秒,然后您应该将计时器持续时间延长到3000。如果您对演示感到满意,请在我的答案上标出。乐意效劳。 –

+0

我已经投票给你并且标记了你的回答。你能评论这是什么意思'$(“#newDivforWraping1”)[c](0)'? –

0

如果你想同时做两个不要使用第二次调用fadeIn/fadeOut回调。 因为HJavascript直接运行nex衰落FX。

$("#newDivforWraping1").fadeIn(1000); 
$("#newDivforWraping5").fadeOut(1000);