Domanda

Vorrei fadeIn un nodo per un secondo. Quindi lasciarlo acceso per 10 secondi. Quindi fadeOut per altri 3 secondi. Un modo per concatenarlo sarebbe il seguente:

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

Nel codice precedente, il passaggio centrale è un modo molto sciocco di non ottenere nulla. Esiste una sorta di dojo.fx.sleep animazione che non fa nulla per un determinato periodo di tempo?

È stato utile?

Soluzione

Non sono un utente dojo, ma il linguaggio comune di JQuery e Prototype è la proprietà delay, che sembra essere presente anche in 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();
});

Altri suggerimenti

Positivo non ci sono in questo momento; l'unico modo per ottenere l'effetto è dividere il codice in sezioni pre-sleep e post-sleep, cosa che hai praticamente fatto qui. L'unica cosa che consiglierei è che Dojo faccia il meno possibile durante la durata di 1o, ooo-millisecondo; come hai ora, viene chiamato il metodo fadeIn () e, sebbene probabilmente trascurabile, il fatto che stia eseguendo almeno un'istruzione condizionale (per verificare se è necessario modificare un'opacità o meno proprietà), è sicuramente un po 'più lento del semplice fatto che lo script non faccia nulla.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top