JavaScript

2

JavaScript

offline
  • WordPress Support
  • Pridružio: 03 Feb 2015
  • Poruke: 495

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: 14811
  • 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
  • WordPress Support
  • Pridružio: 03 Feb 2015
  • Poruke: 495

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

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14811
  • 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: 3747
  • 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: 14811
  • 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: 3747
  • 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: 14811
  • 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: 4575

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: 3747
  • 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 833 korisnika na forumu :: 6 registrovanih, 0 sakrivenih i 827 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: draggan, Koridor, MB120mm, Penzula, Shilok, Vlajman1957