Взял за основу ваш код, получилось так:
n = 0;
function slider() {
$('.visible').text(arr[n]).hide().show(500).delay(1500).fadeOut(1000);
n++;
if(n == arr.length) n = 0;
window.setTimeout(slider, 3000)
};
slider();
Дело в том, что данную функцию нужно синхронизировать по времени с другой (с интервалом в 2 сек, та функция сменяет изображения в течение 1 сек). Но после первого цикла функция slider(); начинает отставать по времени, с чем это связано ?