Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Koncepti koje sam naucio u JavaScriptu
- 43 mini and full projects
- 1. ImageBlur{
- e.target.classlist.contains('neka klasa){
- if true, dodati neku drugu klasu ili ukloniti
- Vesovic video {
- - basic how to in JS play(), pause(), load()
- - find JS documentation za video na mozzila tamo ima i vise od tutorijala
- - position absolute, position relative, outline za box
- - if(video.paused) napraviti rokadu i dugme za play postaje pause sa setAttribute
- }
- }
- 2. Timer + websiteVisitCount FlorinPop
- 3. Tip - Calculator CodingAddict {
- - Option kako uraditi bez HTML kroz JavaScript {
- Jedan nacin je selektovati select i putem innerHTML direktno ubaciti
- Drugi nacin je napraviti array sa obj koji sadrzi podatke o svakom pojednacnom option
- value i sadrzaj
- onda napraviti forEach proci kroz objekte i svakom option dodati jedan objekat i to appendovati
- }
- - Kako vrednost iz Optiona uzeti i na osnovu njega napraviti procente za racunanje{
- if else, ako je value = 1 onda procenta iznosi toliko, a u startu je procenat=0
- tu let procenat onda ubacis u racunske operacije
- }
- }
- 4. FlashCard{medium}{
- rad sa objektima i to jedan function UI(){} gde radis vecinu stvai i jedan za ono sto dobijes iz inputa function Input(someting, something){}
- - previousElement or nextElementchild how to display
- - EDIT i id, kako koristimo da u program ubacimo id i kasnije da uradimo edit svega toga
- ovo treba da definisimo najpre
- let data = []
- let id = 1
- nakon sto se forma izvrsi treba da se desi sledeca promena
- edit bi trebao da ima dataset i kroz objekat ili sta vec, kada appendujemo formu dataset treda da dobije id
- svaki sledeci dobija id uvecan za +1
- data.push(question)
- id++
- prakticno pravimo arr.koji cemo da filtriramo i da izvucemo onaj id koji jeste card gde smo kliknuli
- - korak prvi je da edit bude kao i delete i da brisemo card
- - drugi da imamo taj id kod sebe preko e.target
- - prilikom izvrsenja forme ja trebam ceo objekat da ubacim u arr i onda prilikom edita to filtriram i najdjem kao za react ono sto jeste i ono sto nije jednako sa id
- - na kraju normalno input polja dobijaju novu vrednost koja je jednaka filteru, gde je najden bas taj id gde se kliknulo
- pr.
- // specific question
- const tempQuestion = data.filter(function(item) {
- return item.id === parseInt(id);
- });
- // rest data
- let tempData = data.filter(function(item) {
- return item.id !== parseInt(id);
- });
- data = tempData
- questionInput.value = tempQuestion[0].title;
- answerInput.value = tempQuestion[0].answer;
- }
- 5) Modal{very-easy} - DevEd simplified
- - Kako da koristis data-set, u HTML-u i kako da ga selektujes u JS, das Event i sl
- - Kako da koristis scale(0) i scale(1) + mozes i jos neki transform da dodas, efektniji je od opacity i display:none
- 6) Music APP{easy} -DevEd {
- - Kada radis ForEach imas i index, koji bi mogao i trebao da koristis, njega mozes da setas i tako da nosis sa sobom vrednosti indexa niza, i onda nekom ili necemo dodelis to, pr. ARR Colors=[a,b,c] ...popuni sa bojama svaki buble koji napravis
- - Animation End kako se radi, a radim ga da bih uklonio nesto, kao buble nakon sto oni izvrse neku animaciju da mi ne stoje na strani, niti nabijaju pritisak dole
- - Kako koristi audio src, zajedno sa mozzila dokumentacijom. Kliknes da se cuje zvuk
- }
- 7) MealDB Traversy - medium{
- - e.path.find(item) - e.path.find uvek ide sa trazenjem neke klase, kada je nadjes onda u njoj trazis dataset id
- - dataset id da se doda template stringa i preko njega da se nadje id za svaki meal
- - u jednom API raditi sa vise api call i vise razlicitih zavrsetaka
- - kako los api sa prikazom objekta ingredients pretvorit u arr i izlistati,template string zezanje
- }
- 8) Number Guesser - Traversy Media {
- - Kako lepo procistiti kod, izdovjiti u funkcije, videti moze li neki if else da postane ternarni operator
- - mnosto prosledjivanja vrednosti iz funcije u funkciju
- - varijable treba obelezavati sa const uvek ako se ne menjaju
- - const pera , zika, marko --- mozes i ovako da postavis samo prva je const, a ostale su odmah ispod i odvajas zarezom
- - Mousedown event, window.location.reload() kada se ostvari event
- - button.disabled = true
- }
- 9) Kviz Net Ninja ->{very-easy} Clear Interval, kako se prakticno postavlja i cemu sluzi, ovde za animaciju prikaza broja ili procenta
- Kako se pravi forma za da bi se nasli odgovori, na formu nasadim name, koje koristim da uporedim sa onim sto je stiklirano, a to je value
- ScrollTo(pozicija x na ekranu, pozicijaY na ekranu )
- Portfolio Project(Traversy){
- - state menagment with boolean i toogle dobijamo velike mogucnosti
- }
- 10) MovieSetBooking Traversy -> {}
- 11) Form Submission DevED {easy
- - Raditi sa AdjescentpreviousElement, AdjescentNextElement
- - Rad u kretanju kroz dokument pomocu JS, gde bukvalno mozes bilo sta da sklonis sa strane putem transform, ako pre toga postavis sve to u absolute position za svaki input, transformom jedan pomeres gore i prikazujes drugi
- - Kako pomocu JS preci sa jednog celog inputa na drugi
- - return true -> return u JS znaci da se sa tom linijom kod JS zavrsi, tako javascript sa ovim prekida izvrsenje forme na tom mestu i vraca vrednost onoga sto je u formi
- }
- 12) TypeSpeedGame - Traversy -> {easy
- SetInterval -> Kako da odbrojavam vreme, gde za svaki sekund postavim tu funkciju i 1000
- pre toga moram da imam promenljivu koja prikazuje vreme i onda putem funkcije umanjujem to vreme sve dok je vece od 0 u skaldu sa setInterval 1000
- Function Init koja inicira i pokrece celu pricu
- }
- 13) BookAPP ObjectJS {easy
- - Rad sa objektima i to imati 2 objekta, sve ono sto treba da se vrati zajedno iz inputa moze da predstavlja jedan objekta, function UI(){} je drugi objekat za koji pravim prototipe i sve funkcije aplikacije
- - Kako proslediti book, prvo uzimanjem svih vrednost iz inputa i povezivanjem sa vecim datim atributima objekta book
- - AddEventListener osim objekata samnih daje najvecu strukturu celoj prici, u za svaki listener moramo ponovo da instanciramo objekat
- }
- 14) Tesetmonial CoddingAddict {easy
- - Rad sa custom objektom koji sam ja napravio i treba da ga ubacim
- - Na klik menjaj objekte koje prikazujes
- - Menjam index
- }
- 15) MigrantAddNumbersGame{easy
- - logika da vise brojeva budu istovremeno random
- - animate css (da bi radilo na racunaru ukljuci animation on windows)
- - e.target.innerHTML - vrednost polja za selekciju dobijas ovako
- }
- 16) Countdown Traversy {very-easy
- - Date Object i dokumentacija
- - newDate.getTime() - dobijes milisekunde od 1970
- - SetInterval(), ClearInterval(), za countdown sve mora da bude u okviru jednog diva postavljeno pa najbolje da day, hour... postavis kroz JS innerHTML
- }
- 17) Mini Tweet App {easy-medium
- - Local Storage ( setItem, getItem, removeItem) oslanjaj se na kod u local storagu kod tebe, jer nema dobre dokumentacije na Net-u. Tek na ovom projektu si naucio rad sa Local Storage
- - Materalize.css
- }
- 18) Infinite Scrool{traversyMedia} {easy
- - Kako merimo udaljenost od vrha stranice i visinu otvorenog prozora, kada dotaknemo dno otvorenog prozora aktiviramo neki dogadjaj ili kreiramo novi element
- - Window.onScroll event
- - Flexbox, TranslateY(), animation-delay
- - Samo zato sto nisam pri kreiranju elementa kroz JavaScript napravio novi div, nije htelo da se prikaze na ekranu
- }
- 19) BackgroundSlide Codding Addict {easy
- - kako napraviti slider u DOM sa backgroundimage
- - zajebavanje sa index + i -
- - savet -> u style napravi bacground-image:url() i gledaj kako treba da ispadne u JS-u
- }
- 20) NewYear FlorinPoP{easy
- - kreiranje pahuljica ( kroz JS kako praviti elemente koji tu nisu bili)
- - koriscenje randoma da bi dobio random width, dodavanje animacije kroz JS
- }
- 21) Search {easy
- - normalno uporedjivanje celog skupa iz liste sa prvim slovom u inputu
- - dobro koristiti CodePen
- }
- 22) Random Dog {easy
- - Bootstrap
- - API forEach after click on button
- }
- 23) ExhangeApi {Traversy} { easy-medium
- - HTML number da znas da je to na ekranu kada klikom menjas broj, input, change
- - Exchange API basic use
- - Number ima slusaca, kada se menja menja se i vrednost u prikazu ispod njega
- - Najvaznije kako dolazis do-> rates, onoga sto sam API daje i pruza vrednost jedne valute, koja automatski postaje vrednost druge valute
- - koriscenje za objekte mora da se zna da se resi [],
- - switch values na klik, kako zameniti 2 vrednosti u JS
- }
- 24) FullTODOAPP {
- - Add item
- - Edit item
- - Delete item
- - Search item
- - hide item
- concept - previousElementSibling, nextElementSibling
- concept - nodeList pretvoriti u arr pre search
- consept - ako je checkbox === true uraditi nesto
- }
- 25) MovieSearch - Coding Garden(easy-medium){
- - Bootstrap
- - movieSearchDb, ne koristi njihov link i api key jer ne radi i losa dokumentacija, samo uzmi SJ link
- - reduce u praksi za prikaz podataka na strani
- - kako iskoristiti id koji nudi API da bi dobio jedinstven id za svaki film i to onda koristis da bi mogao da klikom na watchLater dodas film na drugom mestu
- - u narednom navratu uradi isto sa Materalize.CSS i da sve stane u jednom redu!
- .then(nova funkcija) - kako nadovezuje 2 funkcije iako nije api call, da nakon jedne ide druga fun
- - dodaj alert
- - u Watch Later izbaci dugme - button, ternari operator
- }
- 26) Simple Calculator very easy {
- - eval()
- - updatovanje stanja, zajednicka funkcija kojoj prosledjujes vrednosti klika
- - this.id
- }
- 27) TypeWritting very easy {
- - da se tvoj tekst otkucava slovo po slovo
- }
- 28) Arapin Form Validation easy{
- - form validacija komplet, samo bez regularnih izraza, jedino za email
- - Nema slanja, pre nekog sve bude dobro
- }
- 29) Weather API easy-medium {
- - OpenWeather api, gledanje dokumentacije, tacna pozicija browsera
- - navigator.location - Geolocation API, kako se sa njim radi
- - celzisus to farenhait on click
- - Svaki link za api mora da sadrzi u sebi prethodno http://
- }
- 30) Regex email validation full easy{
- - koriscenje dataset
- - regex mala slova, brojevi,broj karaktera
- - celokupna struktura email validacije -> kada radis pravi projekat mozes da pogledas
- }
- 31) Simple PasswordAPP veryEasy {
- - Prvi put rad sa sliderom, slider value ubaciti dinamicno
- - Random + for loop -> kako imati odredjeni broj random simbola, povezano sa slider.value
- - UI semantic framework
- - += append kada, kada je dovoljno samo +
- - block scoop, treba imati spolja varijablu da bi mogla da bude unutra i opet spolja izvlacis, jer varijable iz nutra nemaju domet van for loop
- }
- 32) Navbar CoddingAddict very easy {
- - toggle classu
- - CSS postavke
- }
- 33) Filter Codding Addict easy {
- - dataset, data-filter
- - search
- - on click filtrirati i dobiti sta treba
- }
- 34) Dice Game Jonas {
- - Logika
- - State, toggle class
- - Kako promeniti koji player igra
- }
- 35) Rock Paper Scissors {
- - pravljenje rezultata preko proxi
- - dom.textContent = value, ne radi definsanje textContenta gore
- - logika
- - e.target moze iz elementa da pokupi sta hoces
- }
- 36) {
- CourseFormProject - rad sa objektom
- - local storage
- - dom traversing to get card, then select everything card.querySelector
- - koncept da ako dobije neki element iz dom, mozes sve ispod njega da selektujes
- }
- 37) Github FInder Traversy {
- API
- Rad sa vise js fajlova
- Rad sa query
- Rad sa klasama i bootstrap
- }
- 38) Modal CoddingAddict {
- e.target.src
- backgorundImage postaje slider
- punis arr sa slikama
- add/remove class show
- na klik dobiti tacno taj index slike
- }
- 39) ColorBoxes ColtSteel
- 40) SoundBoard CoddingGarden{
- - rad sa lokalnim json
- - dinamicno sve prikazati na ekranu, pripremi containere pre JS
- - rad sa tonovima, play(), pause() ...
- }
- 41) SpeedTypeGame TravesyMedia {
- clearInterval
- LocalStorage
- TranslateY na klick
- Rad sa select
- }
- 42) CustomVideoPlayer Traversy{
- - rad sa range, onchange event
- - On timeupdate, progress.value, video.duration
- - play(), pause(), stop(), updateTIme()
- - kako koristiti MDN dokumentaciju
- }
- 43) MenuSliderModal Traversy {
- - toggle button da stavis iznad ikonice da bi lepo izgledala i lepo obuhvatila sto obican height, width ne moze
- - body dobija translate X za duzinu navbara, tako se ceo body pomera na desno da se vidi modal
- - nav je uvek position fixed, van headera
- }
- 44) Expense tracker Traversy {
- - LocalStorage getItem na pocetku, pa setItem gde treba
- - e.classList.add(-unutra moze da ide i ternarni operato)
- - brisanje preko id od transaction preko dugmeta
- - kako da efikasno koristim arr transactions da u njega upadne svaka transakcija na input to je kljucno za ceo app
- }
- 45) Music Player Traversy{
- }
- 46) Memory Cards
- 47) Lyrics Search {
- - lyrich.ovh api prost sa losom dokumentacijom
- - 3 api calls
- - kako na klik getLyrics dobiti novu stranu na ekranu
- - pagination, next (url), ako api daje jos informacija mozes ponovo da pravis poziv i menjas novi izgled na ekranu
- - novi modern display api information samo sa map plus container je iznad map, mada malo zezanje sa template string
- }
- 48) Relaxer App {
- - SetTimeout, setInterval
- - Animacija se uvek izvrsava na container elemnta, ne i na samom elementu
- - animation grow, shrink, rotate
- - znacaj animation-orgin css
- }
- 49) TypeChecker easy {
- - Kako racunati pocetak i kraj nekog perioda, razlika endTime, startTime
- - getTime() prevesti u sekunde
- }
- 50) SecretMessage ColtSteel {
- - btoa and atob encoding base64 encoding of string
- - input.select() - selektovanje stringa, unosa
- - default stanje u slucaju nekog uslova, koje se razlikuje od pocetno prikazanog HTML
- - window '#' hash za skrivanje poruke
- }
- 51) FormValidator sa formom TraversyMedia {
- - poenta kako dinamicno raditi sa vise inputa i od njih napraviti jedinstveni arr
- - poruka za gresku ispod inputa
- - Password i confirm Password
- }
- 52) DOMSortRichestMan TraversyMedia {
- - ...spread, kada i kako koristiti
- - visestruko pozivanje funkcije, sa svakim pozivom novi ulaz, kako kontrolisati
- - sort, filter, map, reduce
- - imitacija Reacta, gde treba rucno updatovati DOM
- }
- 53) Hangman Traversy
- 54) CarInsurance Arapin
- 55) BootstrapModal (Maximilian) easy{
- - pointer-events:all, pointer-events:none - da mozes preko modala da palis i gasis
- - input omogucava da napravis objekat i da prikazes na ekranu, delete single movie
- -
- }
- 56) MovieBookingLocalStorage{
- - localStorage bez arr i sa arr
- - e.target
- - css perspective on container
- - css :not(.neka klasa ).:not(.neka klasa)
- - selectIndex => Iz koga vidim koji je broj option index (0,1,2,3)
- - local storage treba da se ubaci selectIndex i izvuce napolje, to isto radis i za svaki seat
- }
- 57) Car Dealership CoddingAddict
- 60) AdvancedTODO Dev Ed course {
- - LocalStorage, setItem, getItem, removeItem
- - splice, indexOF
- - transform pri delete item
- - koriscenje klasa za filtriranje item
- - change select value uraditi nesto na promenu
- }
- 64 Tabs Codding Addict{
- - event bubling
- - efikasno koriscenje getElementById
- - data-id i id
- - koncept oduzeti klasu svima sa to klasom i dodeliti samo e.target elementu
- }
- 65) JS accordion {
- - content element
- - max height i overflow hidden na content
- - posle proveravas njegov max height -> scrollHeight elementa
- }
- 66) ChangeImageBackground on password very easy{
- - getComputedStyle
- - koristiti trikove, mimik vrednosti css kao pocetne u js, da bi je posle dinamicno menjao !
- }
- 67) Pop up {
- - rad sa narednim i prethodnim indexom
- - rad sa src i href
- - osnovni koncept popUp je da link vece slike ima u sebi manju sliku, tako da u startu klikom imamo uvecani prikaz
- }
- 68) Vesovic Challange => {
- - toggle height, overflow:hidden
- - slozeni json sa vise slojeva
- - borba sa template prikazom, trim(), json('')
- }
- 69) Digital Clock + input {
- - kako instalirati Moment.js
- - prikaz i format sa Moment.js tako da ti nikada ne treba rucni data/time
- - setAttribute()
- }
- 75) InfiniteScroll Negoe {
- - Dodatno na standardnu pricu o scrool, kada tako nesto downloaduejs treba da obratis paznju dole na network i da testiras kako radi sa slabijim internetom.
- - Mozes za svaku sliku da postavis event onLoad(), pa kada su svi elementi loadivani sto odgovara ukupnom broju koji si na pocetku prevideo onda ready === true i moze da loaduje. Ako ima problema mozes na pocektu da loadiujes manji broj, pa onda da ga poguras da bude veci kasnije
- }
- Counter(CodingAdditc)
- - koriscenje JavaScript ugradjenog animate()
- - dodavanje svoje DATE na pocetku koju kasnije povecavam, smanjujem i nesto radim sa njom
- - obicno u JavaScript kada hoces nesto da brojis i racunas, ti krenes sa let sum = 0; let count=0 i tome slicno zavisi sta brojis
- Roll-Dice Jonas {
- - init() - funkcija tako da nista ne strci u kodu. Sve mora biti u okviru funkcija, pa i samo pocetno stanje koje aktiviras gore prvo na pocetku pre ostatka koda
- - state koncept i toogle state slicno Reactu
- - na klik promeniti sliku i kako oznaciti slike
- }
Add Comment
Please, Sign In to add comment