JavaScript

2

JavaScript

offline
  • Web developer
  • Pridružio: 03 Feb 2015
  • Poruke: 501

var images = [         "zajs1.jpg",         "zajs2.jpg",         "zajs3.jpg",         "zajs4.jpg",         "zajs5.png",         "zajs6.jpg",         "zajs7.jpg",         "zajs8.jpg",         "zajs9.jpg",            ];     var i=0; function slides(){     document.getElementById("current").src = images[i];     if(i<(images.length-1))     i++; else     i=0; }     setInterval(slides, 3000);      
Imam code koji radi. Bio sam znatizeljan, nisam jos stigao do slideshow dela, na tutorijale koje ucim, stigao sam do promene slike na klik, i zanimalo me je kako da se same menjaju, svakako cu da nastavim, tamo gde sam stao, bez preskakanja.

Svaka primedba i ispravka je dobrodosla, da bi se na greskama naucilo.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14825
  • Gde živiš: Niš

Pa eto vidiš - sve se može kad se hoće. Very Happy Samo tako nastavi... Smile

Elem, može ovaj kod još malo da se unapredi. Imaš poziv jedne metode svaki put kada setInterval okine, a zapravo je dovoljno pozvati je samo jednom. Šta misliš, o čemu je reč? Smile



offline
  • Web developer
  • Pridružio: 03 Feb 2015
  • Poruke: 501

A odkud znam druze, nisam ja jos za JavaScript dubinsko razmisljanje. Kako mislis kada okine?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14825
  • Gde živiš: Niš

Drug Elite ti reče: E.L.I.T.E. ::Ovo nije vezano samo za JavaScript već za bilo šta što programiraš. Da bi naučio da razmišljaš kao programer potrebno je vreme, ali moraš i sam da uložiš određeni trud Smile
A valjda znaš i shvataš šta radi metoda setInterval?

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

@vasa.93: moze ovaj kod da se "skrati" i vise od toga Wink Pored tvoje sugestije, i ceo jedan else block je visak, jedino sto je za to potrebno znati kako ++ funkcionise.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14825
  • Gde živiš: Niš

Napisano: 28 Jan 2018 13:42

Nisam siguran na šta misliš. Kako drugačije vratiti i na 0 (a da to bude jeftinije od deljenja po modulu)? Very Happy

Dopuna: 28 Jan 2018 13:50

Zapravo, cirkularna lančana lista bi bila najpogodnija struktura za ovaj problem, ali je to trenutno ovde viša matematika. Very Happy

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

document.getElementById("current").src = images[i++]; if (i === images.length) {     i = 0; }

Bonus pitanje: zasto je ovo moguce?

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14825
  • Gde živiš: Niš

Napisano: 28 Jan 2018 14:49

A to. Pa dobro, moja primedba se odnosila više na optimalnost pri izvršenju nego na jednostavnost zapisa. Ovo tvoje je sa strane optimalnosti podjednako kao i ono što je Elite zapisao. Very Happy

EDIT: Ali da, definitivno se slažem da je ovaka zapis jednostavniji. Smile

I da, čak bih i ja koristio inline postfiksni ++ operator, ali verujem da je Elite to raščlanio baš zbog toga što kod prilaže početniku koji bi onakav zapis bilo razumljiviji. A inače, ajde just for the record, zapis kao tvoj je moguć jer ++ operator osim inkrementiranja vraća i vrednost, odnosno u postfiksnom zapisu vraća vrednost nakon inkrementiranja.

Dopuna: 28 Jan 2018 14:52

Aha, greška, nije Elite priložio taj kod, nego Stephanos. Very Happy Elite je priložio još sektaškiji zapis pomoću ternarnog operatora. Mr. Green

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4576

vasa.93 ::Elite je priložio još sektaškiji zapis pomoću ternarnog operatora. Mr. Green
Može i sektaškije Mr. Green

document.getElementById("current").src = images[i++], i === images.length && (i = 0);

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

vasa.93 ::A inače, ajde just for the record, zapis kao tvoj je moguć jer ++ operator osim inkrementiranja vraća i vrednost, odnosno u postfiksnom zapisu vraća vrednost nakon inkrementiranja.

Stativa. Prvo vrati vrednost, pa je onda inkrementira. Da je ++i, onda bi prvo inkrementirao.

Ko je trenutno na forumu
 

Ukupno su 1193 korisnika na forumu :: 104 registrovanih, 10 sakrivenih i 1079 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: AleksSE, Alen1987, AndrejPetar, Andy, Ares12356, Avalon015, Ba4e, bagor10, bankulen, bbogdan, Ben Roj, Bojan198527, bojanstros9, bokisha253, boramitic, Botovac, BOXRR, Bubimir, cemix, Cicumile, Clouseau, Coabelgrade, cole77, Dambi, DavidA, dekan.m, Dimitrise93, djboj, Djuro2000, Dorcolac, draganca, Dzoni70, Electron, EXIT78, Frunze, g_g, geo.dule, Glavni Oružni, gomago, Inner-Cell, Ivan Campo, ivan1973, ivanb, Japidson, Jerry Drake, Jomini, Jozo74, Još malo pa deda, kenny74, Kepinger, kokodakalo, Kruger, Kubovac, Kuroje, larix, lcc, Limeni91, littlebunny, ljuba, lucko1, luka35, Marko Marković, Marko1238, MarkoD, mean_machine, mercedesamg, Metanoja, MiGac, Milan Miscevic, milenko crazy north, milimoj, MILO-VAN, mist-mist, mm1811, N.e.m.a.nj.a., nemkea71, nnovakis, opt1, Pancevac, pfc74, precan, Prečanin30, PrincipL, promajauglavi, Pururin, rakivan, Raso75, royst33, ruma, samo opusteno, samoulogovankorisnik, sap, savuni, Simonsen23, stefanmpurtic, suton, Tanasko, US_Rank_0, Velički, vidra1, voja64, zax22r, Zedi100, 223223