CSS-keyframe-animaatiot Reactilla
Ottakaa @keyframes-animaatioita käyttöön ja poistakaa niitä dynaamisesti komponentin tilan ja tapahtumien perusteella.
CSS-keyframe-animaatiot Reactilla on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.
@keyframes-säännön määrittäminen
@keyframes-sääntö kuvaa monivaiheisen animaation nimeämällä ominaisuuksien arvot aikajanan eri kohdissa käyttäen määritteitä from ja to tai prosenttiosuuksia, kuten 0%, 50% ja 100%.
Toisin kuin siirtymät, keyframe-animaatiot voivat kuvata monimutkaista, useassa vaiheessa tapahtuvaa liikettä, joka käynnistyy itsestään ilman tilan muutosta jokaisessa vaiheessa.
animation-lyhytmerkintä
Keyframe-joukko otetaan käyttöön animation-ominaisuudella: animation: slideIn 400ms ease forwards. Se kokoaa yhteen nimen, keston, ajoitusfunktion ja täyttötilan.
forwards-täyttötila pitää elementin viimeisen keyframen arvoissa animaation päätyttyä ja estää sitä hypähtämästä takaisin alkuun.
Animaatioluokan lisääminen tilan perusteella
Reactissa lisätään yleensä animation-määrittelyn sisältävä luokka, kun tila muuttuu todeksi. Esimerkiksi is-entering-luokan lisääminen käynnistää keyframe-animaation heti, kun elementti liitetään tai lippu vaihtuu.
Näin animaatiologiikka pysyy CSS:ssä, ja React päättää vain, milloin luokka lisätään.
animation-fill-mode
animation-fill-mode määrittää, mitkä tyylit ovat voimassa ennen animaation suorittamista ja sen jälkeen. forwards säilyttää viimeisen keyframen, backwards ottaa ensimmäisen keyframen käyttöön viiveen ajaksi ja both tekee molemmat.
Ilman forwards-arvoa näkyväksi animoitu elementti hypähtäisi animaation päättyessä takaisin näkymättömäksi.
animation-direction alternate
animation-direction: alternate toistaa animaation jokaisella kierroksella ensin eteenpäin ja sitten taaksepäin. Yhdessä animation-iteration-count: infinite -arvon kanssa se tuottaa tasaisen edestakaisen liikkeen, kuten sykkivän tai hengittävän vaikutelman.
Tämä sopii hyvin latausilmaisimiin tai hienovaraiseen huomiota kiinnittävään liikkeeseen.
Keskeyttäminen animation-play-state-ominaisuudella
animation-play-state voi olla running tai paused. Sitä voi ohjata React-tilasta esimerkiksi pysäyttämällä marquee-animaation hiiren osoittimen ollessa sen päällä vaihtamalla luokkaa.
Koska animaatio pysähtyy nollautumisen sijaan, se jatkuu täsmälleen siitä kohdasta, jossa se pysähtyi.
Uudelleenkäynnistys key-propia muuttamalla
Keyframe-animaatio toistuu vain kerran, kun sen luokka lisätään ensimmäisen kerran; saman luokan lisääminen uudelleen ei käynnistä sitä uudelleen. Siisti React-temppu on vaihtaa elementin key-arvoa, jolloin React liittää uuden solmun ja toistaa animaation alusta.
Esimerkiksi key={count} toast-ilmoituksessa liittää sen uudelleen aina, kun count kasvaa.
prefers-reduced-motionin huomioiminen
Jotkut käyttäjät ottavat käyttöjärjestelmässään käyttöön vähäisemmän liikkeen asetuksen mukavuuden tai esteettömyyden vuoksi. Käärikää tarpeettomat animaatiot @media (prefers-reduced-motion: reduce)-mediaehdon sisään ja poistakaa ne käytöstä tai lyhentäkää niitä sen yhteydessä.
Tämän asetuksen kunnioittaminen tekee käyttöliittymästä osallistavamman ja ehkäisee epämukavuutta.
Animaation käynnistäminen vieritettäessä IntersectionObserverilla
Kun haluatte animoida elementtejä niiden tullessa näkymäalueelle, käyttäkää IntersectionObserver-oliota useEffect-kutsun sisällä. Kun kohde tulee näkyviin, päivitätte tilan, jolloin animaatioluokka lisätään.
Näin saatte vieritettäessä paljastuvia tehosteita ilman raskaita vierityskuuntelijoita, jotka suoritetaan jokaisella ruudulla.
Animaatioiden ajoittaminen animation-delaylla
animation-delay porrastaa kunkin keyframe-animaation aloitusajankohtaa. Kun annatte kohdeluettelon viiveiden kasvaa, kohteet animoituvat peräkkäin ja paljastuvat hallitusti.
Voitte laskea viiveen kullekin kohteelle Reactissa käyttämällä style={{ animationDelay: i * 80 + 'ms' }}.
Keyframe-animaatiot ja siirtymät
Käyttäkää siirtymiä yksinkertaisiin vuorovaikutuksen aiheuttamiin kahden tilan muutoksiin ja keyframe-animaatioita silloin, kun tarvitsette monivaiheista liikettä, toistuvaa animaatiota tai tilan vaihtamisesta riippumattomasti toimivaa animaatiota.
Molemmat ovat puhdasta CSS:ää, joten React päättää vain, milloin luokat liitetään, ja selain käsittelee ruudut.
Pikatarkistus
Testatkaa, miten hyvin ymmärrätte keyframe-animaatioiden toiminnan.
Kertaus
Opitte määrittämään @keyframes-säännön, käyttämään sitä animation-lyhytominaisuudella, hallitsemaan täyttötilaa ja suuntaa, pysäyttämään animaatioita ja käynnistämään ne uudelleen sekä paljastamaan elementtejä vieritettäessä IntersectionObserverin avulla.
Näitte myös, miten prefers-reduced-motion-asetusta kunnioitetaan esteettömän liikkeen varmistamiseksi.
Opi React tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 88
- Oppitunnit
- 324
Usein kysytyt kysymykset
Onko oppitunti ”CSS-keyframe-animaatiot Reactilla” ilmainen?
Kyllä – oppitunnin ”CSS-keyframe-animaatiot Reactilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”CSS-keyframe-animaatiot Reactilla”?
Ottakaa @keyframes-animaatioita käyttöön ja poistakaa niitä dynaamisesti komponentin tilan ja tapahtumien perusteella. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”CSS-keyframe-animaatiot Reactilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?
Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- CSS-siirtymät Reactin tilamuutoksilla
- CSS-keyframe-animaatiot Reactilla
- useLayoutEffect esianimaation mittauksiin
- Saapumis- ja poistumisanimaatiot ilman kirjastoa