2011-05-19 2 views
2

Je cherche à fondre des divs avec une certaine classe dans l'ordre du code, chaque fondu pouvant arriver 250 ms après le dernier, donnant l'impression d'un chargement progressif de la page.Eléments de fondu en incrémental sur la charge de la fenêtre

Je suis loin pour la décoloration dans tout à la fois ...

$(window).load(function(){ 
    $('div.fade_this_please').fadeIn(4000); 
}); 

mais je ne sais pas où je vais passer en revue chaque DIV et fade quand l'autre est complète .

Quelqu'un peut-il me diriger dans la bonne direction?

Un conseil apprécié!

Répondre

6

Ceci divise tous les divs, chacun avec un retard de 250ms progressif. Je vous recommande de réduire le temps de transfert à 2 secondes pour chaque au maximum, 4 secondes semble waaay trop long et va probablement agacer les gens

$(window).load(function() { 
    $('div').each(function(i) { 
     $(this).delay((i + 1) * 250).fadeIn(2000); 
    }); 
}); 
+0

Cela fonctionne très bien, le merci! – Cordial

+1

http://jsfiddle.net/cordial/hh42R/2/ – Cordial

1

essayer avec

$('div.fade_this_please').fadeIn(4000).delay(250); 

ou

jQuery(function($){ 
var e = $('div.fade_this_please'); 
e.fadeIn(); 
e.queue(function(){ 
    setTimeout(function(){ 
    e.dequeue(); 
    }, 250); 
}); 
}); 

reference

2

Vous pouvez itérer à travers eux et définir un délai avant la fadeIn():

$(window).load(function(){ 
    var delay = 0; 
    $('div.fade_this_please').each(function(){ 
     $(this).delay(delay).fadeIn(4000); 
     delay += 250; 
    }); 
}); 
Questions connexes