Здравствуйте господа!
Решил сделать мини слайдер на js:
function nextSlide(slide){
currentSlide = slide;
if(currentSlide == 0 || currentSlide == 3)
{
currentSlide = 1;
$("#s2,#s3").css("visibility", "hidden");
$("#s1").css("visibility", "visible");
setTimeout(nextSlide(1),2000);
}
else if(currentSlide == 1)
{
currentSlide = 2;
$("#s1,#s3").css("visibility", "hidden");
$("#s2").css("visibility", "visible");
setTimeout(nextSlide(2),2000);
}
else
{
currentSlide = 3;
$("#s1,#s2").css("visibility", "hidden");
$("#s3").css("visibility", "visible");
setTimeout(nextSlide(3),2000);
}
}
Функция nextSlide(0); вызывается при загрузки страницы.
Я так понимаю что setTimeout вызывает функцию через заданное количество миллисекунд, но функция не зацикливается. Пытался реализовать через setInterval(nextSlide(currentSlide),2000); но переменная currentSlide не видна за пределами функции nextSlide.
в принципе удобней было бы реализовать с помощью setTimeout для каждого блока if-else так как в этом случае можно будет прописывать разное время задержки для каждой картинки. Но не могу понять принцип работы setTimeout.