Witam
Mam pewien problem ze sliderem na stronie. Slider działa na poleceniu setInterval. Jeśli strona jest aktywna to wszystko jest ok. Problem pojawia się gdy przechodzę do innej zakładki. Gdy strona ze sliderem nie jest aktywna funkcja setInterval odlicza czas lecz nie wykonuje się. W wyniku tego gdy powrócę na stronę ze sliderem funkcja setInterval (a właściwie funkcja slide();) wykonuje się tyle razy z rzędu ile razy się "zbuforowała" bez odstępu czasowego (na tyle szybko na ile pozwalają jej ustawienia efektów przejścia).
<script type="text/javascript">
var banners = 3;
var limit = (banners-1)*628;
var szer = 628;
var licznik = 0;
$(function () {
setInterval("slide();",6000);
$("#slider_next").click(function(){next();});
$("#slider_prev").click(function(){back();});
});
function slide()
{
if(licznik<(banners-1))
{next();}
else
{prev();}
}
function prev()
{
$("#slider_main").animate({'opacity':'0'},100);
$("#slider_main").animate({'left':'0px'},0);
$("#slider_main").delay(100).animate({'opacity':'1'},100);
licznik = 0;
}
function prev2()
{
$("#slider_main").animate({'opacity':'0'},100);
$("#slider_main").animate({'left':'-'+limit+'px'},0);
$("#slider_main").delay(100).animate({'opacity':'1'},100);
licznik = (banners-1);
}
function next()
{
if(licznik < (banners-1))
{
$("#slider_main").animate({'opacity':'0'},100);
$("#slider_main").animate({'left':'-='+szer+'px'},0);
$("#slider_main").delay(100).animate({'opacity':'1'},100);
licznik++;
}
else
{prev();}
}
function back()
{
if(licznik > 0)
{
$("#slider_main").animate({'opacity':'0'},100);
$("#slider_main").animate({'left':'+='+szer+'px'},0);
$("#slider_main").delay(100).animate({'opacity':'1'},100);
licznik=licznik-1;
}
else
{prev2();}
}