Autor Zpráva
vlado
Profil *
Ahojte sam si neviem rady a tak by som vas rad poprosil o radu. Snazim sa vytvorit nekonecny slider, ktory bude neustale menit 4 pozadia divu. Zatial mam napisane toto:
    function slider(){
        

        $("#slider").css({"background":"url(images/slide-1.png) no-repeat 0 0"});
        $("#slide1 a").addClass("aktiv");
        
        setTimeout(function() {$("#slider").css({"background":"url(images/slide-2.png) no-repeat 0 0"});
                                $("#slide1 a").removeClass("aktiv");
                                $("#slide2 a").addClass("aktiv");
        } , 4000);
        
        setTimeout(function() {$("#slider").css({"background":"url(images/slide-3.png) no-repeat 0 0"})
                                $("#slide2 a").removeClass("aktiv");
                                $("#slide3 a").addClass("aktiv");        
        } , 8000); 
        
        setTimeout(function() {$("#slider").css({"background":"url(images/slide-4.png) no-repeat 0 0"})
                                $("#slide3 a").removeClass("aktiv");
                                $("#slide4 a").addClass("aktiv");            
        } , 12000); 
        
        
    }

akym sposobom by som mohol tuto funkciu volat dookola?

skusal som ako posledny riadok napisat setTimeout( slider(), 16000); ale evidetne je to blbost pretoze jedine co to sposobilo bolo zamrznutie prehliadaca...

za kazdu radu budem vdacny.
Kcko
Profil
vlado:
Ta rekurze má fungovat tak, že si někde v proměné (globální) budes udržovat číslo aktuálního slidu a ten budes inkrementovat s rekurzivním voláním, jakmile to dojede na konec = tj. maximálního počtu obrázků tak se to nastaví na 1 a jede se zas od začatku. To cos vytvořil je tak akorát megabastl ;-)
_es
Profil
vlado:
skusal som ako posledny riadok napisat setTimeout( slider(), 16000); ale evidetne je to blbost
Viď Časté potíže, zajímavosti a poučné debaty » Rozdíl mezi voláním funkce a funkcí a príklad kódu v Časté potíže, zajímavosti a poučné debaty » Nepoužívejte eval, ani jeho obdoby.

jquery rekurzivna funkcia
Nie sú „jQuery funkcie“ sú len funkcie, aj jQuery je len jedna objekt/funkcia: Časté potíže, zajímavosti a poučné debaty » Co vlastně je jQuery?
vlado
Profil *
Kcko, _es:
Dakujem rady mi pomohli, neviem ci som to napisal spravne ale funguje to kod ma teraz tvar:
    function slider(){
        

        $("#slider").css({"background":"url(images/slide-1.png) no-repeat 0 0"});
        $("#slide1 a").addClass("aktiv");
        $("#slide4 a").removeClass("aktiv");
        setTimeout(slide2,4000);
        setTimeout(slide3,8000);
        setTimeout(slide4,12000);
        setTimeout(slider,16000);
        
        function slide2() {$("#slider").css({"background":"url(images/slide-2.png) no-repeat 0 0"});
                                $("#slide1 a").removeClass("aktiv");
                                $("#slide2 a").addClass("aktiv");

        }
        
        function slide3() {$("#slider").css({"background":"url(images/slide-3.png) no-repeat 0 0"})
                                $("#slide2 a").removeClass("aktiv");
                                $("#slide3 a").addClass("aktiv");        
        } 
        
        function slide4() {$("#slider").css({"background":"url(images/slide-2.png) no-repeat 0 0"})
                                $("#slide3 a").removeClass("aktiv");
                                $("#slide4 a").addClass("aktiv");            
        } 
        
        
    }

chcel by som sa este spytat ci by ste mi nemohli poradit ako do takehoto skriptu nejako jednoducho zakomponovat efekt pomalsej zmeny css vlastnosti... kdeze dookola menim pozadie divu tak by som chcel docielit aby sa toto pozadie menilo plynule... snazil som sa o docielenie tohto efektu aj sam ale neuspesne :\
Kcko
Profil
vlado:
Celé je to špatně. Měla by to být pouze jedna funkce, která bude volat sama sebe, tj. rekurze.
A pozadí se Ti bude měnit plynule pokud tomu uzpůsobíš vnitřní logiku té funkce.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: