2012-03-28 22 views
0

如何設置淡入淡出效果的計時器?假設text1將在5秒內淡出,然後text2將出現,然後5秒後淡出,然後出現text3。我不熟悉jQuery。帶定時器的淡入淡出效果?

說我有3個文本:

<div class= "text1>Text 1</div> 
<div class= "text1>Text 2</div> 
<div class= "text1>Text 3</div> 

我只有這個:

$(".text1").fadeOut(5000); //now that a timers. 
+0

你可以使用迭代您元素,並將其包裝成。每個$ setTimeout,你會得到fadeOut動畫從text1然後text2等等延遲5秒... – 2012-03-28 14:02:59

回答

4

首先,解決您的無效的HTML,並使用不同的類(IDS會的工作,也順便說一句):

<div class="text1">Text 1</div> 
<div class="text2">Text 2</div> 
<div class="text3">Text 3</div> 

然後用這個JavaScript代碼:

function fade() { 
    $('.text1').fadeIn().delay(5000).fadeOut(); 
    $('.text2').delay(5000).fadeIn().delay(5000).fadeOut(); 
    $('.text3').delay(10000).fadeIn().delay(5000).fadeOut(fade); 
} 
fade(); 

演示:http://jsfiddle.net/ThiefMaster/hmRFB/1/

+0

你可以調整它有點,所以如果它到達到text3它將淡出,然後text1將重新出現,並且該過程將再次重做。 – 2012-03-28 14:32:02

+0

完成 - http://jsfiddle.net/ThiefMaster/hmRFB/1/ – ThiefMaster 2012-03-28 15:07:46

3

你可以簡單地嵌套的回調。函數fadeOut需要2個參數,nr1是動畫應該存在的時間,參數nr2是動畫完成時執行的回調。

http://jsfiddle.net/HULvL/

$(".text1").fadeOut(5000,function(){ 
// Text1 is outfaded.. 
    $(".text2").fadeOut(5000,function(){ 
     $(".text1").fadeIn(5000,function(){ 
      // Do more stuff 
     }) 
    }) 
});​ 

<div class= "text1">Text 1</div> 
<div class= "text2">Text 2</div> 
<div class= "text3">Text 3</div>​ 
+0

+1的JSFiddle - 看起來像一個偉大的網站 – 2012-03-28 14:38:57

+0

它的awsome像這樣的情況;-) – 2012-03-28 14:39:28

1

也許這個動畫橫幅文本適合您的問題。 DEMO

HTML代碼(HTML代碼是正確的,你創造效益選擇):

<div class= "text1">Text 1</div> 
<div class= "text1">Text 2</div> 
<div class= "text1">Text 3</div> 

jQuery代碼:

 

$(document).ready(function(){ 

    function AnimateBannerTeks(){ 
     var ct= 1;  
     $('.text1').each(function(){   
      var delay= 5000 * ct; 
      var $obj= $(this); 
      setTimeout(
      function(){ 
       $('.text1').fadeOut('fast'); 
       $obj.fadeIn(5000);    
      }, delay); 
      ct++; 
     }); 
    } 

    AnimateBannerTeks(); 
    setInterval(AnimateBannerTeks, 15000); 
});