2009-11-26 54 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