есть ли какая-нибудь функция dojo.fx.sleep для использования в анимации dojo.fx.chain?
-
20-08-2019 - |
Вопрос
Я хотел бы fadeIn
узел за одну секунду.Затем оставьте на 10 секунд.Затем fadeOut
еще 3 секунды.Один из способов связать это может быть следующим:
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();
В предыдущем коде средний шаг — это очень глупый способ ничего не достичь.Есть ли что-то типа dojo.fx.sleep
анимация, которая ничего не делает в течение определенного периода времени?
Решение
Я не являюсь пользователем Dojo, но общей идиомой JQuery и Prototype является свойство задержки, которое, похоже, также присутствует в 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();
});
Другие советы
Положительного на данный момент нет;единственный способ добиться этого эффекта — разделить код на секции до и после сна, что вы в значительной степени и сделали здесь.Единственное, что я бы порекомендовал, — это заставить Додзё делать как можно меньше в течение 10000 миллисекунд;как у вас есть сейчас, постепенное исчезновение() вызывается метод, и, хотя он, вероятно, и незначителен, тот факт, что он выполняет хотя бы один условный оператор (чтобы проверить, нужно ли ему изменять свойство непрозрачности), определенно немного медленнее, чем просто сценарий ничего не делает.