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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top