2009-11-26 64 views
1

我正在用dojo進行一些基本練習來學習它的語法和方法。學習道場:在對象集合上鍊接動畫

爲了學習一組項目的動畫鏈接,我創建了一個簡化示例。

任何人都可以提供一些關於我創建的dojo代碼的反饋嗎?在這種情況下,我是否利用了正確的庫功能?你認爲哪種dojo選項是這種用例的最佳解決方案?

供參考,在jQuery的我會做到這一點:

$(function() { 
    // jQuery 
    $('div').fadeOut().fadeIn(); 
}) 

對於道場的解決方案,我想出了四種解決方案依賴於不同的Dojo組件的存在:

// dojo 
dojo.require("dojo.fx"); 
dojo.require("dojo.NodeList-fx"); 

dojo.addOnLoad(function() { 

    // Option 1: Using dojo.js only 
    dojo.forEach(dojo.query('div'), function(div) { 
     dojo.fadeOut({ 
      node: div, 
      'onEnd': function() { 
       dojo.fadeIn({ 
        node: div 
       }).play(); 
      } 
     }).play() 
    });  

    // Option 2: Using dojo.js and dojo.fx 
    dojo.forEach(dojo.query('div'), function(div) { 
     dojo.fx.chain([dojo.fadeOut({node: div}), dojo.fadeIn({node: div})]).play(); 
    }); 

    // Option 3: Using dojo.js, dojo.fx and dojo.NodeList-fx 
    var divs = dojo.query("div"); 
    divs.fadeOut({ 
     'onEnd': function() { 
      divs.fadeIn().play(); 
     } 
    }).play() 

    // Option 4: Using base, dojo.fx and dojo.NodeList-fx 
    var divs = dojo.query('div'); 
    dojo.fx.chain([divs.fadeOut(), divs.fadeIn()]).play(); 

}); 

回答

2

我的建議如下:

  1. 基準測試,看看哪些效果最好。
  2. 使用任何您感覺最舒適的東西。
  3. 伊莫選項4是最好的。
  4. 轉到freenode上的#dojo頻道。那裏有很棒的人(包括我)可以幫助你解決任何問題。
+0

是的,選項4也是我的首選解決方案 - 允許通過鏈陣列將動畫表示爲一系列線性步驟。那麼,就其他核心語言特性而言,我不會'錯過'關於dojo的任何事情,這將會產生更合理/實用的解決方案? – 2009-11-26 00:46:49

+0

不在我看來。但是你應該問freenode,因爲我不是dojo的動畫API方面的專家。 – 2009-11-26 17:05:07