1

我想fadeIn超过一秒钟的节点。然后让它保持 10 秒钟。然后再fadeOut持续 3 秒。一种链接方式如下:

dojo.fx.chain([
   dojo.fadeIn({node:myNode, duration:1000}), // fading in for 1 second
   dojo.fadeIn({node:myNode, duration:10000}), // this does nothing for 10 seconds
   dojo.fadeOut({node:myNode, duration:3000}) // fade out for 3 seconds
]).play();

在前面的代码中,中间步骤是一种非常愚蠢的一事无成的方法。是否有某种dojo.fx.sleep动画在指定的时间内什么都不做?

4

2 回答 2

1

肯定的,目前还没有;实现该效果的唯一方法是将代码拆分为 pre-sleep 和 post-sleep 部分,您在这里已经完成了很多工作。我唯一推荐的是让 Dojo 在 1o,ooo-millisecond 持续时间内尽可能少做;正如您现在所拥有的那样,正在调用fadeIn()方法,虽然可能可以忽略不计,但它正在运行至少一个条件语句(以检查它是否需要修改 opacity 属性),这绝对是一个比让脚本什么都不做要慢一点。

于 2009-01-27T03:56:24.603 回答
1

我不是 dojo 用户,但 JQuery 和 Prototype 的常见习语是 delay 属性,它似乎也存在于 Dojo 中:

dojo.addOnLoad(function() { 
  var animationArguments = {
    node: “testHeading”,
    duration: 1000,       // ms to run animation
    delay: 250            // ms to stall before playing
  };

  dojo.fadeOut(animationArguments).play();
});
于 2009-01-30T21:36:59.497 回答