2012-01-18 72 views
0

早上好,延遲或setInterval的在mootools的

我有mootools的一個問題,我提出從0到100阿爾法影響,但我想加載下一效果之前做出的延遲。

代碼如下:

<script type="text/javascript"> 
var miEfecto1 = new Fx.Style('texto42' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto2.start(1,0) , 15000);}}); 
var miEfecto2 = new Fx.Style('texto14' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto3.start(1,0) , 15000);}}); 
...etc... 
var miEfecto59 = new Fx.Style('texto45' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto60.start(1,0) , 15000);}}); 
var miEfecto60 = new Fx.Style('texto39' ,'opacity',{duration: 9000,onComplete: function(){setInterval(miEfecto61.start(1,0) , 15000);}}); 
window.addEvent('domready',function() { 
miEfecto1.start(1,0);}); 
</script> 

非常感謝你的幫助!

回答

0

setInterval套間隔一些函數傳遞作爲第一個參數,其中setTimeout只是延緩執行使用後者以避免多次執行。

另外,在你的代碼中立即執行start()方法(如miEfecto2.start(1,0)),因爲你不及格 - 你通過它的結果。要解決這個問題,你可以把它放在一個匿名函數中(但不要調用它)。

的示例代碼看起來是這樣的(注意setIntervalsetTimeout替換,而我封閉在匿名函數的函數調用):

var miEfecto1 = new Fx.Style('texto42', 'opacity', { 
    duration: 9000, 
    onComplete: function(){ 
     setTimeout(function(){ 
      miEfecto2.start(1,0); 
     }, 15000); 
    } 
}); 

讓你的代碼的其餘部分類似的變化。

+0

hello Tadeck! 非常感謝您的回覆。 沒關係,但是應該做的是延遲下一個效果的開始。 效果是將Alpha 100設爲0,那麼在開始淡出之前應等待幾秒鐘。 非常感謝你和原諒我的英語 – hectoralvaez 2012-01-18 15:55:23

+0

非常感謝!你給了我解決我的問題的關鍵! – hectoralvaez 2012-01-27 08:52:44

+0

@hectoralvaez:沒問題,很高興幫助。我看到你發佈了一個與我的解決方案几乎完全相同的答案 - 你能解釋一下嗎? – Tadeck 2012-01-27 09:06:11

0

你需要做的是連鎖的影響,並設置爲任何你需要的延遲..

檢查這個例子:http://demos111.mootools.net/Chain

或檢查文檔:http://mootools.net/docs/core/Class/Class.Extras

希望這有助於

+0

http://demos111.mootools.net/是soooooo 2007;) – stecb 2012-01-18 15:41:06

+0

= P大聲笑...好的新演示是在http://mootools.net/demos/?demo=Chaining但代碼沒有改變 – pleasedontbelong 2012-01-18 15:45:25

+0

他反正使用1.1x--基於使用Fx。風格 – 2012-01-18 17:18:28

0

解決方案:

var miEfecto_i1 = new Fx.Style('texto19', 'opacity', { 
    duration: 1000, 
    onComplete: function(){ 
     setTimeout(function(){ 
      miEfecto_o1.start(1,0); 
     }, 10000); 
    } 
}); 

var miEfecto_o1 = new Fx.Style('texto19', 'opacity', { 
    duration: 1000, 
    onComplete: function(){ 
     miEfecto_i2.start(0,1); 
    } 
}); 

感謝!

+0

我格式化了你的代碼,第一部分幾乎完全是我提出的,另一部分沒有延遲。你能解釋一下,我的解決方案有何不同? – Tadeck 2012-01-27 09:05:07