Esileht - GreteNeilinn/G-Sushi GitHub Wiki
Ülevaade:
Failid, mis seotud esilehega on järgmised:
- esilehtSVG.html
- stiilSVG.css
- pealkiriSVG.js
Esileht koosneb peamiselt SVG-dest, mis on vektoritest koosnevad pildid. Kasutasin SVG-sid, kuna tavaliste piltide puhul nende suurendamine või kahandamine vähendab nende kvaliteeti, mis SVG-de puhul ei kehti. Kasutatud SVG-d pärinevad leheküljelt https://freesvg.org/ , kus on lubatud neid pilte tasuta kasutada. Inspiratsiooni andsid video https://www.youtube.com/watch?v=vJNVramny9k ja artikkel https://freefrontend.com/css-animated-backgrounds/ .
Javascript
Javascript ei ole otseselt veebilehe koodi implementeeritud, aga ma kasutasin seda pealkirja tähtede mõõtmete saamiseks.
Pealkirja animatsioon
Pealkirja animatsioon töötab stroke-dasharray ja stroke-dashoffset'i alusel. Stroke-dasharray jaoks vajalikud mõõtmed sain eelnevalt mainitud javascriptiga, mille ma käivitasin chrome-i console-is. Nimelt dasharray pikkuseks on terve tähe outline-i pikkus ning stroke-offset saab sama väärtuse, mis dasharray, liigutades vahe dashide vahe paremale niipalju, et tähe outline-i pole näha. Animatsiooniga, me muudame stroke-dashoffset talle antud väärtusest 0-ni, muutes tähe outline nähtavaks. Näide tähest G:
#pealkiri path:nth-child(1){
stroke-dasharray: 544px; /* Tähe outline-i pikkus ilma vahedeta */
/* stroke-dasharray teeb - - - */
stroke-dashoffset: 544px; /* Liigutab dash-i 544px vasakule, nii et tähe outline-i pole näha */
/* Stroke-dasharray määrab kust algab dash array */
animation: pealkiri-anim 2s ease forwards;
}
@keyframes pealkiri-anim{
to{
stroke-dashoffset: 0; /* dashoffset liigub üha paremale, muutes outline-i nähtavaks */
}
}
Pealkiri on ka animeeritud sisu värviliseks muutma, peale outline-i animatsiooni. Selleks on kasutatud from{} ja to{}, kus alguses on sisu läbipaistev ja pärast heleroosa.
Lendlevad sushid
Esilehe taustaks on erinevad sushid, mis lendlevad ekraani alt ülesse. Nende algus- ja lõpp-punktid on ekraanist väljas pool, et see ilusam välja näeks. Selleks kasutasin overflow: hidden;
. Nagu ka pealkirja tähtede jaoks kasutasin ma sushi svg-de jaoks :nth-child(){}
meetodit, et anda erinevatele sushidele erinevad asukohad, pikkused, kiirused ja algusajad. Animatsiooni alguses on kõik sushid püstiolekus ja läbipaistmatud ning enne lõppu peavad nad ära tegema 2 ringi ümber enda. Lisaks peavad nad lõpus olema läbipaistvad. Näide ühest sushist:
/* Sushi 4 */
.liikuv svg:nth-child(4){
left: 40%;
height: 60px;
animation-delay: 0s;
animation-duration: 18s;
}
@keyframes lendlev{
/* alguses */
0%{
transform: translateY(0)rotate(0deg);
opacity: 1;
}
/* lõpus */
100%{
transform: translateY(-1000px)rotate(720deg); /* Sushi teeb kaks ringi ümber enda
ja liigub üles ekraanist välja */
opacity: 0;
}
}
Menüüriba
Hiire liigutamine ülemise menüürea elemendi peale, käivitab antud elemendi paisumise. Seda efekti on tekitatud transition meetodil.