Witam,
Mam problem z pewnymi funkcjami odpalanymi poprzez setInterval(). Mam dwie funkcje do obsługi "meniu". Polegają one na tym, że jedna <ort>przesówa </ort><div'a> w prawo (left++) ujawniając kilka obrazków "menu", a druga chowa obrazki i z powrotem horyzontalnie (left--) <ort>przesówa </ort><div'a> na swoje miejsce. Obecnie działa to jedynie RAZ, później zaczyna się trząść i nici z ładnego ort!. Może to wina 'czyszczenia interwału'?
Ten kod wcześniej napisałem w innej postaci. W funkcjach menu_in() i menu_out() po prostu bez instrukcji warunkowej po której następuje "czyszczenie" i działało w miarę dobrze, jedyną wadą było to że w żaden sposób nie potrafiłem skontrolować zmiennej inkrementowanej "s" (szczegóły poniżej w kodzie) co przyczyniało się do tego, że w momencie uruchomienia funkcji gdzieś w tle leciała pewnie ona w nieskończoność.
Proszę o pomoc. Dzięki wielkie z góry.
var s = 45;
var c = 220;
var predkosc = 10;
var fade_s = 0;
var fade = 0.1;
var pokaz;
var ukryj;
function menu_in()
{
if (s > 220) { clearInterval(ukryj); }
pokaz = setInterval("menu_fade_in()", 25);
}
function menu_out()
{
if (s != 45) { clearInterval(pokaz); }
ukryj = setInterval("menu_fade_out()", 25);
}
function menu_fade_in()
{
if (s < c)
{
s = s + predkosc;
document.getElementById("pasek").style.left = s + "px";
}
if (s > c)
{
fade_s = fade_s + fade;
document.getElementById("o1").style.opacity = fade_s;
document.getElementById("o2").style.opacity = fade_s;
document.getElementById("o3").style.opacity = fade_s;
document.getElementById("o4").style.opacity = fade_s;
document.getElementById("o5").style.opacity = fade_s;
}
}
function menu_fade_out()
{
if (s != 45)
{
s = s - predkosc;
document.getElementById("pasek").style.left = s + "px";
document.getElementById("menu1").style.width = 200 + "px";
}
if (s > 45)
{
fade_s = fade_s - fade;
document.getElementById("o1").style.opacity = fade_s;
document.getElementById("o2").style.opacity = fade_s;
document.getElementById("o3").style.opacity = fade_s;
document.getElementById("o4").style.opacity = fade_s;
document.getElementById("o5").style.opacity = fade_s;
}
}