вот хорошее решение:
fadeInout = {
init: function() {
v = $("#blocks > li").css('visibility', 'hidden'),
cur = 0,
rem = 0;
for (var j, x, i = v.length; i;
j = parseInt(Math.random() * i), x = v[--i], v[i] = v[j], v[j] = x);
//other startup code
return this;
},
fades: function() {
this.fadein();
},
fadein: function() {
v.eq(cur++).css('visibility', 'visible').hide().fadeIn();
if (cur != v.length) setTimeout(fadeInout.fadein, 50);
else setTimeout(fadeInout.fadeout, 100);
},
fadeout: function() {
v.eq(rem++).css('visibility', 'none').fadeOut().show();
if (rem != v.length) setTimeout(fadeInout.fadeout, 50);
}
}
fadeInout.init().fades();
и вот скрипка, которая показывает это: http://jsfiddle.net/maniator/rcts4/