Pergunta

Gostaria de fadeIn um nó mais de um segundo. Em seguida, deixe-a por 10 segundos. Então fadeOut por mais 3 segundos. Uma maneira de encadeamento este seria o seguinte:

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();

No código anterior, a etapa média é uma maneira muito bobo de alcançar nada. Existe algum tipo de animação dojo.fx.sleep que não faz nada para um determinado período de tempo?

Foi útil?

Solução

Eu não sou um usuário dojo, mas o idioma comum de JQuery e Prototype é a propriedade de atraso, o que também parece estar presente no 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();
});

Outras dicas

Positivo não há neste momento no tempo; a única maneira de alcançar o efeito é dividir seu código em seções pré-sono e pós-sono, que você muito bem feito aqui. A única coisa que eu recomendo é ter Dojo fazer tão pouco quanto possível durante o 1o, duração ooo milissegundos; como você tê-lo agora, o fadeIn () método está sendo chamado e, ao mesmo tempo, provavelmente insignificante, o fato de que ele está sendo executado pelo menos uma instrução condicional (para verificar se é ou não precisa modificar uma opacidade propriedade), é definitivamente um pouco mais lento do que apenas ter o script não fazer nada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top