Надо сделать циклическую авторотацию блоков.
Вот "наваял" такой код:
$(document).ready(function(){
var timevis = 2000;
var delay = 500;
var counter = $(".block").length;
var a = 0;
setInterval(function(){
if (a > counter){$(".block").show(); a = 0;};/* как бы эти строки подсократить? */
var astring = ".block:eq(" + a +")";
if ((a + 1) > counter){$(".block").show(); a = -1;};/* как бы эти строки подсократить? */
var bstring = ".block:eq(" + (a + 1) +")";
if ((a + 2) > counter){$(".block").show(); a = -2;};/* как бы эти строки подсократить? */
var cstring = ".block:eq(" + (a + 2) +")";
$(astring).slideUp(delay);
$(bstring).slideUp(delay);
$(cstring).slideUp(delay);
a += 3;
}, timevis);
});
Проблема в том, что после каждого перебора набора элементов, смена "hide" происходит только после заданной паузы... Как таковой цикличной ротации нет.
Что тут можно сделать?
У меня в голове крутятся два варианта:
1) После каждой итерации удалять из DOM показанные элементы и динамически вставлять их в конец набора.
2) При превышении счётчика итераций "длины набора элементов" clearInterval с рекурсией на инициализацию setInterval. Но тут мне кажется вылезут косяки и будут "дёргания" анимации...