Autor | Zpráva | ||
---|---|---|---|
vlado Profil * |
#1 · Zasláno: 4. 12. 2012, 01:21:58
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 |
#2 · Zasláno: 4. 12. 2012, 09:21:07
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 |
#3 · Zasláno: 4. 12. 2012, 09:41:40
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 * |
#4 · Zasláno: 4. 12. 2012, 11:37:33
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 |
#5 · Zasláno: 4. 12. 2012, 16:34:53
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. |
||
Časová prodleva: 11 let
|
0