2011-06-15 58 views
2

我有問題,即時通訊新的jquery,並不明白我如何可以重複我創建的動畫。我的代碼示例如下:如何在Jquery中重複執行某些組元素?

$("#text_rotator1_1").fadeIn(3000,function(){ 
    $("#text_rotator1_2").fadeIn(3000, function(){ 
     $("#text_rotator1_3").fadeIn(3000, function() { 
      $("#text_rotator1_4").fadeIn(3000, function() { 
      $("#text_rotator1_1").fadeOut(1000); 
      $("#text_rotator1_2").fadeOut(1000); 
      $("#text_rotator1_3").fadeOut(1000); 
      $("#text_rotator1_4").fadeOut(1000, function() { 

      }); 

      }); 
     }); 
    }); 
}); 

當所有4個元素都淡出時,我想重複淡入所有元素。像一些同時,循環..我認爲,你明白我的:)對不起,我的壞工程

+0

你希望他們在同一時間或一個接一個像你這樣的代碼illistrates淡出? – natedavisolds 2011-06-15 22:33:45

回答

2

把它包在函數內部,並調用它作爲你的最後一個回調:

function start(){ 
$("#text_rotator1_1").fadeIn(3000,function(){ 
    $("#text_rotator1_2").fadeIn(3000, function(){ 
     $("#text_rotator1_3").fadeIn(3000, function() { 
      $("#text_rotator1_4").fadeIn(3000, function() { 
      $("#text_rotator1_1").fadeOut(1000); 
      $("#text_rotator1_2").fadeOut(1000); 
      $("#text_rotator1_3").fadeOut(1000); 
      $("#text_rotator1_4").fadeOut(1000, start); 

      }); 
     }); 
    }); 
}); 
} 
start(); 

例如:http://jsfiddle.net/niklasvh/BYRkp/

+1

只要打敗我吧!我寫了小提琴,也是! – 2011-06-15 22:36:10

+0

Thaaaaaaaaaaanks :)你是我的英雄,尼克拉斯:) – Misterix 2011-06-15 22:41:24

0

我想我會做這樣的事情,使用自定義事件:

$('.text_rotators').bind('fadeMeIn',function(){ 
    $(this).fadeIn("slow",function(){ 
     $(this).trigger('fadeMeOut'); 
    }); 
}).bind('fadeMeOut',function(){ 
     $(this).fadeOut("slow",function(){ 
     $(this).trigger('fadeMeIn'); 
    }); 
}); 

$('.text_rotators').trigger('fadeMeIn'); 
+0

對於pixeline,也許這種方法更實用,抽象...但一段時間,對我來說這很難;)但是,謝謝,我想,我也會嘗試;) – Misterix 2011-06-15 22:43:04

+0

一旦你理解了這個概念,定製事件並不那麼難。如果除了通常的「點擊」,「鼠標懸停」等...事件,你可以創建自己的?使用jQuery它簡單。只需使用bind(),給它一個名字,它應該做什麼。然後,當你真的需要它時,.trigger()它。 – pixeline 2011-06-15 23:20:09

相關問題