há alguma função dojo.fx.sleep para uso dentro de uma animação dojo.fx.chain?
-
20-08-2019 - |
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?
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.