道场:通过链式动画迭代?

时间:2011-02-08 19:42:27

标签: javascript dojo loops

我有一个使用Dojo动画类构建的简单动画,以10秒为增量显示五个隐藏列表项。这是一个例子:

dojo.fx.chain([

dojo.animateProperty({     节点:progressList [0],     持续时间:listItemDuration,     onEnd:函数(){         dojo.style(this.node,'display','block');         }
    }),

...

dojo.animateProperty({     节点:progressList [5],     持续时间:listItemDuration,     onEnd:函数(){         dojo.style(this.node,'display','block');         }
    }) ])。玩();

单独列出这些属性非常麻烦。迭代单个dojo.animateProperty更有意义。

是否可以使用dojo.forEach或其他方法迭代dojo.fx.chain中的元素?

1 个答案:

答案 0 :(得分:2)

当然。

类似的东西:

    var hiddenNodes = dojo.query('.hidden');
    var anims = [];
    hiddenNodes.forEach(function(n) {
        anims.push(dojo.animateProperty({
            node: n,
            properties: {
                color: 'red'
            },
            duration: 1000
        }));
    });

    var finalAnim = dojo.fx.chain(anims);

注意,我们只创建一次。之后finalAnim可以传递,并play()随意调用它。