¿hay alguna función dojo.fx.sleep para usar dentro de una animación dojo.fx.chain?
-
20-08-2019 - |
Pregunta
Me gustaría fadeIn
un nodo durante un segundo. Luego déjelo encendido por 10 segundos. Luego fadeOut
por otros 3 segundos. Una forma de encadenar esto sería la siguiente:
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();
En el código anterior, el paso intermedio es una forma muy tonta de no lograr nada. ¿Hay algún tipo de animación dojo.fx.sleep
que no hace nada durante un período de tiempo específico?
Solución
No soy un usuario de dojo, pero el idioma común de JQuery y Prototype es la propiedad de retraso, que también parece estar presente en 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();
});
Otros consejos
Positivo no hay en este momento; la única forma de lograr el efecto es dividir su código en secciones previas y posteriores al sueño, lo que prácticamente ha hecho aquí. Lo único que recomendaría es que Dojo haga lo menos posible durante la duración de 1o, milisegundos; como lo tiene ahora, se llama al método fadeIn () y, aunque probablemente sea insignificante, al hecho de que está ejecutando al menos una declaración condicional (para verificar si necesita o no modificar una opacidad) propiedad), definitivamente es un poco más lento que simplemente hacer que el script no haga nada.