Je veux simuler une animation simple sur le chargement de la page en révélant séquentiellement plusieurs png, chacun apparaissant instantanément mais avec un délai unique et précis avant le prochain. En utilisant la dernière version de jQuery (1.4.2 à l'écriture), qui fournit une méthode de délai. Ma première impulsion (braindead) était:Utilisation de jQuery delay() avec des éléments séparés
$('#image1').show('fast').delay(800);
$('#image2').show('fast').delay(1200);
$('#image3').show('fast');
Bien sûr, tous viennent simultanément. Les exemples de documentation jQuery se réfèrent à un seul élément en cours de chaînage, ne gérant pas plusieurs éléments. OK ... essayez à nouveau en utilisant callbacks imbriqués de show():
$('#image1').show('fast', function() {
$('#image2').show('fast', function() {
$('#image3').show('fast', function() {
});
});
});
est moche (imaginez faire 10, me demande aussi ce succès processeur serait) mais bon, il fonctionne de façon séquentielle! Sans délai cependant. Alors ... retard de la chaîne() après exposition() en utilisant une fonction de rappel de celui-ci (même pas sûr si elle prend en charge un):
$('#image1').show('fast').delay(800, function() {
$('#image2').show('fast').delay(1200, function() {
$('#image3').show('fast');
});
});
Hm. Résultat opposé de ce que je pensais pouvoir arriver: le rappel fonctionne, mais toujours pas de retard. Alors ... devrais-je utiliser une combinaison de file d'attente et de délai au lieu de rappels imbriqués? Les exemples de documentation jQuery pour la file d'attente n'utilisent à nouveau qu'un seul élément par exemple. Deviner cela impliquerait l'utilisation d'une file d'attente personnalisée, mais je ne sais pas comment l'implémenter. Ou peut-être que je manque un moyen simple? (Pour un simple problème!)
Votre conjecture sauvage fonctionne bien! Et la syntaxe me semble maintenant évident. (En attendant d'autres solutions qui pourraient éviter l'imbrication avant de cocher, nous reviendrons plus tard aujourd'hui.) Merci! –
boomturn