31.03 - Zanimljivosti (lokacije za posetiti)
Kreirati web stranicu u kojoj se prikazuju slike zanimljivih lokacija koje dolaze u obzir za ponovnu posetu prilikom letovanja. .
Na stranici treba da se nalaze 4 male slike i jedna velika slika, kao i mesto gde se ispisuje opis slike.
... (kao na slici) ...

- Klikom na malu sliku treba da se ta slika prikaže u delu za veliku sliku, a opis slike da se prikaže u delu rezervisanom za opis.
- Prelaskom miša preko velike slike treba da se čuje zvuk, a kada miš "izađe" sa područje velike slike, onda taj zvuk treba da prestane.
Materijali koji su potrebni za ovaj zadatak: zanimljivo.7z (klik za preuzimanje arhive, pa je raspakujte na vašem računaru)
****************************************************
Zadatak je predviđen za rad na bloku od 3 časa - koristi se čist JavaScript i Fetch API
*****************************************************************
Koraci u radu:
Početak:
- kreirati folder u kojem se radi, otvoriti ga sa VS Code, pa kreirati fajlove za html, css, js
- ! za šablonsko kreiranje html-a
- Unutar ovog foldera postaviti folder za slike i tu ubaciti potrebne slike
- Tekstualni fajl sa opisima slika ostaviti da je pored html fajla (i zvučni fajl isto)
HTML:
- Postaviti naslov
- Ispod naslova postaviti sve 4 slike
- isti width i height + border-radius:50% za okrugle slike
- može se koristiti kontejner za male slike, a ne mora - izbor je vaš
- Ispod toga postaviti jednu veliku sliku
- za početak tu staviti prvu sliku
- Ispod velike slike postaviti deo u koji će se smeštati tekst opisa
- može biti div, p, ili šta god želite
- Audio tag možete postaviti bilo gde na stranici - bitno da ima src i neki id

CSS:
- za sve male slike postaviti istu klasu kojoj se postavlja da imaju isti width i height (npr 100px) i da su okrugle (border-radius: 50%)
- za veliku sliku postaviti veće dimenzije
- za deo za tekst postaviti pozadinu u nekoj svetlijoj boji i širina da se poklapa sa širinom velike slike
- (ovo je gradivo od ranije i ovde neće biti postavljana rešenja)
JS:
- za sve postoji mnogo različitih načina za rad - u ovom zadatku koristimo pozivanje funkcija
- akcije za male slike:
- onclick="promena(this)"
- akcija za veliku sliku:
- onmouseover="pustiZvuk()"
- onmouseleave="zaustaviZvuk()"
Kako se učitava fajl:
- ovo može da se izvede na više načina:
- korišćenjem moderne verzije - Fetch API i običnog JavaScript-a
- korišćenjem starije verzije - AJAX i metoda get, uz korišćenje JQuery
- u ovom zadatku će biti korišćen moderni pristup ( Fetch API )
- radi jasnijeg prikaza koristiće se dve funkcije:
- funkcija za preuzimanje podataka preuzmiPodatke()
U nastavku je iza dugmeta Slika table iz učionice

Jedan od načina da se u jednoj funkciji vrši i promena slike i promena teksta:
- funkcija u kojoj se ujedno preuzimaju podaci i vrši promena slike
function promena(element) { document.getElementById("idVelikeSlika").src = element.src; preuzmiPodatke(element.id - 1); } - u ovakvoj funkciji se vidi da se kao prvi argument prenosi ceo element koji poziva finkciju ( slika ) - jet se koristi this
- Čak i kada treba preuzeti podatke, iz elementa se ovde preuzme id i iskoristi za preuzimanje određenog opisa iz fajla
- pošto su id pisani od 1 do 4, a redovi su nizovi gde indeksi počinju od 0, jasno je zašto se vrši -1
- ako bi id slika pisali od 0 tada ne bi bilo potrebe za oduzimanjem
- u nastavku je Slika table iz učionice

Kako se pušta zvuk:
- I ovo može da se izvede na više načina, ali je zajedničko da se koristi HTML tag Audio:
- može se postaviti tag bilo gde na stranicu
- kada treba da se pusti zvuk koristi se
play() - kada treba da se zvuk zaustavi koristi se
pause() - u nastavku je Slika table iz učionice
