Staten av CSS Animasjon

CSS har modnet på mange måter gjennom årene, ikke minst når det gjelder CSS-animasjoner. Med hver dag som går mer og mer, utviklerne skaper levende, pustende grensesnitt. I denne artikkelen vil vi se på tilstanden til CSS-animasjoner, hvordan den har vokst, hva den er i stand til i dag og dekke noen ressurser og verktøy tilgjengelig. La oss flytte!

Vekst

Bruk av animasjon på nettet øker, hovedsakelig på grunn av overgang og  @keyframes tillegg til CSS. Det var en gang da animasjoner og CSS ikke kjenner hverandre, men det er ikke tilfelle i dag. Artikler, opplæringsprogrammer, premium kurs og jevn bevegelsesretningslinjer er langt mer tilgjengelige nå enn de en gang var. kombinere @keyframes med animasjon eiendom, sammen med overgang har endelig gitt utviklere muligheten til å lage bevegelse ordentlig og låne grensesnitt en personlighet og liv en gang uoverensstemmet. 

Fra Googles retningslinjer for materialehåndtering

Det har aldri vært en mer spennende tid for CSS animasjoner og interaksjonsdesign enn akkurat nå!

Animasjon Eiendom & Keyframes

Gjeldende implementering av animasjon Egenskapen tillater utviklere å kontrollere varighet, timing, forsinkelse, iterasjonstelling, retning, fyllemodus og spilltilstand. Timingdelen tillater også a trinn () funksjon. Denne spesielle tidsfunksjonen bryter en animasjon eller overgang til segmenter (som en filmstrimmel), i stedet for som en kontinuerlig overgang fra en stat til en annen. Keyframes lar bevegelsesutviklere å deklarere posisjoner ved hjelp av fratil og til og med prosenter for å animere mellom eiendomsverdier deklarert. Det er en god start, men vi diskuterer i et øyeblikk hvor det blir kort.

Overgangseiendom

Så er det strålende overgang eiendom; en eiendom like fancy som animasjon og en som gjør at vi kan styre animasjonshastigheten når du bytter egenskaper. Prosessen med å overføre mellom to stater kalles vanligvis en implisitt overgang; et begrep som beskriver tilstandene mellom start- og sluttstaten, implisitt definert av nettleseren. Overganger tillater for tiden tilpassing av eiendommen, tidspunktet, varigheten og forsinkelsen.

 

Introvideoen ovenfor er hentet fra Up and Running With CSS Transitions av Craig Campbell.

Hva mangler?

CSS animasjon kan være kraftig som den sitter, men det mangler fortsatt et bestemt aspekt animatorer lyst mest, tidslinje-esque kontroll. Hva jeg mener med dette er sekvenser som kan påvirkes og manipuleres basert på timing.

@keyframes move-objekt fra startposisjon og verdier på 2s gjør dette vent til 4s dette skjer til stopp posisjon eiendom og verdier 

Syntaxen ovenfor eksisterer ikke, men maler et bilde mer detaljert av hva animasjonseksperter på nettet krever. GreenSock er for eksempel kjent for denne typen sekvensering, men dessverre skjer det bare i JavaScript. Ville det ikke vært bra å ha dette i CSS også? jeg tror det.

 

Video over tatt fra GreenSock Animasjonsplattform: Første trinn av Craig Campbell.

Det er sikkert evnen til å kontrollere animasjon og overgang hendelser gjennom bruk av JavaScript for ytterligere granulær kontroll av en sekvens. Med JavaScript kan utviklere oppdage starten på hver ny animasjonsherreasjon, når en animasjon oppstår, når animasjonen slutter, og det samme gjelder for overgangshendelser.

Browser inspeksjon og verktøy

Dette er ganske spennende tider for nettleserutviklerverktøy for å inspisere og justere CSS-animasjoner. De fleste nettlesere (Firefox, Chrome) tillater inspeksjon av CSS-animasjoner med hensyn til Safari og Edge. Fra det jeg har fortalt av en kilde som jobber for Microsoft, er animasjonsinspeksjon noe Microsoft-teamet virkelig ønsker å gjøre. La oss håpe dette er det samme for Safari.


Med hensyn til nettleserne som gjøre støtte animasjon inspeksjon har vi følgende evner ...  

  • Tidslinje inspeksjon som kan skrubbe.
  • Vis animasjoner som er brukt på ::før og ::etter pseudo-elementer.
  • Justere nøkkelbilder eiendom og verdier på fly.
  • Rapportering av nøkkelbilder navnene.
  • Vise av egenskaper animert.
  • Easing plukkere og bézier kurve redaktører.
  • Fargekoding for å vite om hendelsen er en overgang, keyframe eller web animasjon.
  • Kontroller og endre avspillingshastigheten.

Mens utviklere har ganske mye å velge mellom basert på listen over, krever de fortsatt mer verktøy på animasjoner angående brukerinteraksjon. Dette kan også bli kjent som eiendomsinterpolering, innsetting av en mellomverdi i en serie ved å beregne den fra omgivende kjente verdier; mye som når du bytter til en ny verdi med overganger. Disse dynamiske / reaktive animasjonene kan starte når som helst, er ubestemt, og har variable varigheter basert på brukerinteraksjon. Noe igjen som ikke kan feilsøkes eller inspiseres fra noen utviklerverktøy levert av en nettleser for øyeblikket.

Fremtiden

Fremtiden ser lys ut for CSS-animasjon, men med alt spesielt relatert, har det en tendens til å bevege seg sakte. CSS bevegelsesbanen modul, inneholdeKommer til å endres og foretrekker-redusert-motion media spørring (ikke en standard og bare WebKit) er de nåværende kommende funksjonene for CSS animatorer.

CSS Motion Path

Bevegelsesbaner tillater utviklere å animere noe grafisk objekt langs en forfatterspesifisert bane. Du kan definere en sti på en veldig lik måte som er definert av SVG 1.1.

.min-elementet bevegelsessti: sti ('M93.9,46.4c9.3,9.5,13.8,17.9,23.5,17.9s17.5-7.8,17.5-17.5s-7.8-17.6-17.5-17.5c-9.7 , 0,1-13,3,7,2-22,1,17,1 c-8,9,8,8-15,7,17,9-25,4,17,9s-17,5-7,8-17,5-17,5s7,8-17,5,17,5-17,5S86,2,38,6,93,9,46,4 z '); bevegelse-offset: 0; bevegelsesrotasjon: revers; 

De bevegelsesbanen definerer en sti et element vil følge eller bevege seg på. Våre motion-offset Egenskapen er plasseringen av elementet et sted på banen. Eiendommen motion-rotasjon er retningen elementet "ansikter" når det beveger seg langs banen.

Ta en titt på disse samlingene av demo på CodePen fra Dan Wilson som gir liveeksempler bevegelsesbanen evner.

  • Mine CSS Motion Path Demos av Dan Wilson
  • CSS Motion Path av Dan Wilson

Kommer til å endres

De Kommer til å endres Egenskapen gir en måte for forfattere å hint på nettlesere om hva slags endringer som forventes for et element. Dette gjør at nettleseren kan opprette passende optimaliseringer før tid før elementet faktisk endres.

.min-elementet will-change: transform; 

Denne typen optimalisering kan forbedre den oppfattede belastningstiden og utformingen av en side ved å gjøre dyre arbeid på forhånd før de faktisk er påkrevd. Å si at det er foreslått at utviklere ikke gjelder Kommer til å endres til for mange elementer som det kan forbruke ressurser og føre til at en side senkes.

Foretrekker redusert bevegelse

Dette ikke-spesifikke tillegget til WebKit lager stiler som unngår store bevegelsesområder for brukere som angir en preferanse for redusert bevegelse i Systemvalg.

@media (foretrekker redusert bevegelse) .my-element animasjon: none; 

Dette er mer av en tilgjengelighetssituasjon versus faktisk bevegelsesskaping. En interessant en å vurdere om og til en å sjekke ut på fritiden.

Inneholde

Denne CSS-modulen indikerer at elementets subtree er uavhengig av resten av siden, og dermed muliggjør store optimaliseringer av brukeragenter når de brukes riktig. Den mest interessante en for CSS animatorer er maling verdi som kan bestås.

.element-med-bevegelse inneholder: maling; 

Hvis det inneholdende elementet er avskjermet eller skjult, kan nettleseren direkte hoppe over maleriets innhold som de er garantert å være uten skjerm eller skjult. Dette gir til slutt verdi ved å sikre en raskere reneringsrørledning under en innledende maling. Dette er for tiden fortsatt et arbeidstrykk på W3C.

ressurser

Det er mange måter å holde tritt med CSS animasjoner. Nedenfor er noen verktøy og ressurser inkludert spesifikasjoner for å lese over på fritiden din. Hvis du vet om andre fantastiske og nyttige ressurser, vennligst gi oss beskjed i kommentarene, og vi legger dem til listen. Glad animasjon!

W3C spesifikasjoner

  • CSS Timing Funksjoner Nivå 1
  • Bevegelsesbanemodul Nivå 1
  • CSS vil endre modulnivå 1
  • CSS Animasjoner Modul Nivå 3

læring

  • En Beginners Introduksjon til CSS Animasjon av Catalin Miron
  • 9 Populære kurs på CSS Animasjon på Envato Tuts+
  • CSS Animasjon Rocks
  • Slik leser du cubic-bezier kurver av Val Head
  • En introduksjon til CSS Keyframes Animation on Smashing Magazine
  • Web Animasjon Essentials: CSS Animasjoner og Overganger av Rachel Nabors
  • Jank Free
  • Intro til CSS 3D-transformasjoner av David DeSandro
  • Ved hjelp av CSS kan jeg animere ?
  • CSS Overganger og animasjoner. Bevegelsesbanemodul CSS av Ruslan Homyak
  • CSS Animasjons Pocket Guide av Val Head

Verktøy

  • stylie av Jeremy Kahn
  • animate.css av Daniel Eden
  • Materialkomponenter på nettet
  • Easings av Andrey Sitnik
  • Animista av Ana Travas
  • VENTE! Animere av Will Stone
  • cssanimate.com CSS3 Keyframes Animation Generator
  • cubic-bezier.com av Lea Verou
  • cssreference.io En gratis visuell guide til CSS, av Jeremy Thomas
  • Motion UI fra ZURB
  • magiske CSS3 animasjoner med spesielle effekter, av Christian Pucci
  • Hover.css av Ian Lunn
  • CSSYNTH av Bennett Feely