MooTools效果链

时间:2010-12-07 14:43:27

标签: mootools

我希望能够做到这样的事情:

var fx = new Fx.Tween($('element'), {
    duration: 500,
    property: 'opacity',
    transition: Fx.Transitions.Quart.easeOut,
    link: 'chain'
});

fx.start(0, 1)
.chain(function() {
    alert('foo');
})
.start(1, 0)
.chain(function() {
    alert('bar');
});

然后在#element中淡出,然后运行一个函数。但是,我无法让它在第一个chain()之后运行第二个启动,这意味着#element没有淡入。

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

事实证明,与上述代码非常相似的东西可以工作,除非您需要使用callChain()以便下一个“链接”触发..这就是我现在正在使用的内容:

var effect = new Fx.Tween($('element'));
effect.start('opacity', 1)
.chain(function() { /* Do stuff */ this.callChain();)
.chain(function() { /* Do stuff */ this.callChain();)
.chain(function() { /* Do stuff */ this.callChain();)
.chain(function() { /* Do stuff */ this.callChain();)
.chain(function() { /* Do stuff */);

等等。

这是因为Chain类和Chain类的实例,而不是Fx.Tween的实例。我有点恼火,我需要使用callChain(),但它比拥有大量嵌套函数更好。