Kotisivu » Coding » SVG-animaation luominen CSS n avulla

    SVG-animaation luominen CSS n avulla

    SVG: n animointi voidaan tehdä esimerkiksi alkuperäisten elementtien avulla ja . Mutta niille, jotka tuntevat paremmin CSS-animaatiota, ei hätää, voimme käyttää myös CSS-animaatio-ominaisuuksia animoituihin SVG-tiedostoihin.

    CSS-animaatio voisi olla myös vaihtoehtoinen tapa käyttää JavaScript-kirjastoa kuten SnapSVG. Tässä viestissä näemme, mitä voimme mahdollisesti toimittaa CSS-animaatiossa SVG: ssä.

    1. Muotojen luominen

    Ensinnäkin meidän täytyy piirtää muodot ja esineet, jotka haluamme animoida. Voit käyttää sellaisia ​​sovelluksia Luonnos, Adobe Illustrator, tai Inkscape luoda se.

    Tässä esimerkissä olen piirtänyt pilvinen taivas taustana, ja rakettilaiva, joka ampui ylöspäin, sisälsi:

    Kun piirustus on tehty, meidän on vietävä jokainen luomamme esine SVG: hen.

    Aion käyttää Sketchia esimerkkinä tästä vaiheesta. Valitse kohde, jonka haluat muuttaa SVG-muotoon. Napsauta ikkunan oikeassa alakulmassa Tee vienti. Valitse SVG-muoto ja valitse sitten Vie objektin nimi. Sinun täytyy tehdä tämä yksi kohde kerrallaan.

    2. Aseta SVG HTML-muotoon

    Kun avaat SVG-tiedoston koodieditorissa, SVG-koodit ovat melko sotkuisia. Siksi ennen SVG-tiedoston käyttöönottoa siivotaan koodi ja optimoidaan se tämän komentorivityökalun SVGO avulla.

    Tuoda markkinoille terminaali tai Komentokehote, ja asenna SVGO tähän komentoriviin:

     [sudo] npm asenna -g svgo 

    Viritä komento, svgo, SVG-tiedostossa --nätti tuottaa luettava SVG-koodi:

     svgo rocket.svg --pretty 

    Jos hakemistossa on useita SVG-tiedostoja, voit optimoida ne yhteen yhdessä. Olettaen, että hakemisto on nimetty / kuvat, sitten vanhemmasta hakemistosta käytä tätä komentoa:

     svgo -f kuvat --pretty 

    Katsotaanpa ero ennen SVGO: n käyttöä ja sen jälkeen.

    Kopioi koodi SVG-tiedostoon ja liitä HTML-tiedostoon. Työskentelemme 800px: n työtilassa 600px leveällä, joten älä unohda määritellä leveys SVG-elementissä.

            

    SVG on asetettu HTML-tiedostoon. Meidän on määriteltävä tunniste jokaiselle kohteelle, jotta voimme valita ne CSS: ssä myöhemmin.

    Tässä opetusohjelmassa on määritettävä raketin ja liekkien tunnus ja jotkut pilvet. Jotta kohteet voivat käsitellä animaatiovaihetta myöhemmin, meidän on lisättävä id - voit myös käyttää luokka - jokaiseen kohteeseen. Tässä vaiheessa koodi näyttää tältä:

                  

    3. Animoi CSS: n käyttö

    Nyt on hauskaa. Suunnitelmana on rakettien lisääminen avaruuteen. Raketti on jaettu kahteen ryhmään; raketti itse ja liekki.

    Ensinnäkin sijoitamme raketin työtilan keskelle seuraavasti:

     #rocket muuntaa: kääntää (260px, 200px); 

    Näet näin:

    Nyt raketin näyttäminen näyttää nousevan ylöspäin, meidän täytyy luoda illuusio pilvistä. CSS, jota käytämme tähän, on:

     # cloud1 animaatio: syksy 1s lineaarinen ääretön;  @keyframes fall from transform: translateY (-100px);  to transform: translateY (1000px) 

    Jotta se näyttää vieläkin realistisemmalta, olkaamme animoitu neljä pilviä ja tee ne “pudota” eri nopeuksilla. Asettamme ne myös eri tavalla X-akselista.

    Toisessa pilvessä on koodi:

     # cloud2 animaatio: syksy-2 2s lineaarinen ääretön;  @keyframes fall-2 from transform: kääntää (200px, -100px);  to transform: kääntää (200px, 1000px) 

    Huomaa, että olemme siirtäneet pilven # 2 hieman oikealle 200px kanssa Kääntää. Tässä vaiheessa tuloksen pitäisi näyttää tältä.

    Seuraavaksi tehdään raketti elämään. Annamme animaatioavaimen kehyksen seuraavasti:

     #rocket animaatio: ponnahdusikkunat 1 helpottavat ääretöntä;  @keyframes popup 0% muuntaa: kääntää (260px, 200px);  50% muuntaa: kääntää (260px, 240px);  100% muuntaa: kääntää (260px, 200px);  

    Lisää myös animaatiota myös raketin liekkiin:

     #flame animation: ravista .2s lineaarinen ääretön;  @keyframes shake 0% transform: kääntää (55px, 135px) kiertää (7deg);  20% muuntaa: kääntää (55px, 135px) kiertää (0deg);  40% muuntaa: kääntää (55px, 135px) kiertää (-7deg);  60% muuntaa: kääntää (55px, 135px) kiertää (0deg);  100% muuntaa: kääntää (55px, 135px) kiertää (0deg);  

    Oikein! Nyt kun kaikki koodit on asetettu, animaation pitäisi toimia SVG: llä.

    Katsokaa rakettisi räjäytystä avaruuteen.

    Lopullinen ajatus

    Animaatio ei ole helpoin ominaisuus CSS: ssä. Mutta toivottavasti löydät tämän opetusohjelman hyvänä lähtökohtana CSS Animation SVG: n tutkimiseksi edelleen; olisit yllättynyt tietää, mitä CSS-animaatiolla on käsillä.

    Jos haluat aloittaa hyvin perusasioista, voit aloittaa täällä tämän viestin kanssa: Katso: skaalautuva vektorigrafiikka (SVG) animaatio tai seuraa muita SVG-sarjoja.

    • Näytä demo
    • Lataa lähde