Početna » šifriranje » Kako stvoriti SVG animaciju pomoću CSS-a

    Kako stvoriti SVG animaciju pomoću CSS-a

    Animiranje SVG-a može se obaviti preko izvornih elemenata kao što je i . Ali za one koji su više upoznati s CSS animacijom, ne brinite se, također možemo koristiti svojstva CSS animacije i za animirane SVG-ove..

    CSS Animacija također može biti alternativni način korištenja JavaScript biblioteke kao što je SnapSVG. U ovom postu vidjet ćemo što možemo isporučiti s CSS animacijom u SVG-u.

    1. Stvaranje oblika

    Prije svega, morat ćemo nacrtati oblike i objekte koje želimo animirati. Možete koristiti takve aplikacije Skica, Adobe Illustrator, ili Inkscape stvoriti.

    Za ovaj primjer, nacrtao sam oblačno nebo kao pozadinu, a raketni brod pucao prema gore, plamen uključen:

    Kad završimo s crtanjem, moramo izvesti svaki objekt koji smo stvorili u SVG.

    Koristit ću Sketch kao primjer za ovaj korak. Odaberite objekt koji želite pretvoriti u SVG format. U donjem desnom dijelu prozora kliknite Omogući izvoz. Odaberite SVG format, a zatim kliknite Izvezi ime-objekta. Morate raditi ovaj jedan objekt u isto vrijeme.

    2. Umetnite SVG u HTML

    Kada otvorite SVG datoteku u uređivaču koda, otkrit ćete da su SVG kodovi prilično neuredni. Stoga, prije nego instaliramo SVG datoteku, pospremimo kôd i optimiziramo ga pomoću ovog alata naredbene linije zvanog SVGO.

    lansiranje Terminal ili Naredbeni redak, i instalirajte SVGO s ovom naredbenom retkom:

     [sudo] npm install -g svgo 

    Podesite naredbu, svgo, na SVG datoteci pomoću --prilično za izradu čitljivog SVG koda:

     svgo rocket.svg - 

    Ako imate više SVG-ova u direktoriju, možete ih optimizirati sve zajedno, odjednom. Pretpostavljajući da je imenik imenovan / slike, zatim iz nadređenog imenika upotrijebite ovu naredbu:

     svgo -f images - precizno 

    Pogledajmo razliku prije i poslije korištenja SVGO-a.

    Kopirajte kôd unutar SVG datoteke i zalijepite ga u HTML datoteku. Radit ćemo na radnom prostoru širine 800px od 600px, pa nemojmo zaboraviti definirati širina na SVG elementu.

            

    SVG je postavljen u HTML datoteci. Morat ćemo definirati ID za svaki objekt, kako bismo ih kasnije mogli odabrati u CSS-u.

    Za ovaj vodič, moramo definirati ID rakete i plamena, te neke oblake. Da bi objekti kasnije mogli upravljati fazom animacije, moramo dodati iskaznica - također možete koristiti klasa - na svaki objekt. U ovom trenutku, kôd će izgledati ovako:

                  

    3. Animirajte pomoću CSS-a

    Sada se zabavimo. Plan je pojačati raketu u svemir. Raketa je podijeljena u dvije skupine; sama raketa i plamen.

    Prije svega, postavljamo raketu u sredinu radnog prostora, kako slijedi:

     #rocket transform: translate (260px, 200px); 

    Ono što vidite je ovo:

    Da bi raketa izgledala kao da ide prema gore, moramo stvoriti iluziju pada oblaka. CSS koji koristimo za ovo je:

     # cloud1 animacija: pada 1s linearna beskonačnost;  @keyframes pada from transform: translateY (-100px));  do transform: translateY (1000px) 

    Da bi izgledao još realističnije, animirajmo četiri oblaka i napravimo ih “pad” različitim brzinama. Također ćemo ih postaviti drugačije od X-osi.

    Drugi oblak će imati ovakav kod:

     # cloud2 animacija: pada-2 2s linearna beskonačnost;  @keyframes fall-2 from transform: translate (200px, -100px));  do transform: translate (200px, 1000px) 

    Imajte na umu da smo pomicali oblak # 2 malo u desno, prema 200px s Prevedi. U ovoj fazi rezultat bi trebao izgledati ovako.

    Zatim, neka raketa oživi. Dodijelit ćemo ključni okvir animacije kako slijedi:

     #rocket animacija: popup 1 smanjuje beskonačnost;  @keyframes skočni prozor 0% transform: translate (260px, 200px));  50% transform: translate (260px, 240px);  100% transform: translate (260px, 200px);  

    I dodajte animaciju u raketni plamen:

     #flame animacija: protresite .2s linearno beskonačno;  @keyframes tresti 0% transform: translate (55px, 135px) rotirati (7deg);  20% transform: translate (55px, 135px) rotate (0deg);  40% transform: translate (55px, 135px) rotate (-7deg);  60% transform: translate (55px, 135px) rotate (0deg);  100% transform: translate (55px, 135px) rotate (0deg);  

    Pravo! Sada kada su naši kodovi postavljeni, animacija bi trebala raditi na našem SVG-u.

    Pogledajte našu raketnu eksploziju u svemir.

    Konačna misao

    Animacija nije najjednostavnija značajka u CSS-u. Ali nadamo se da ćete ovaj vodič smatrati dobrom početnom točkom za daljnje istraživanje CSS animacije na SVG-u; bili biste iznenađeni da znate što se može postići s CSS Animation pri ruci.

    Ako želite početi s osnovama, možete početi s ovim postom: A Into: Scalable Vector Graphics (SVG) Animacija ili slijedite ostatak SVG serije.

    • Prikaži demo
    • Preuzimanje izvora