JavaScript-baserte animasjoner ved hjelp av Anime.js, Del 2 Parametere

I den første opplæringen av Anime.js-serien lærte du om forskjellige måter å spesifisere målelementene du vil animere, og hvilke typer CSS-egenskaper og DOM-attributter som kan animeres. Animasjonene i forrige opplæring var veldig grunnleggende. Alle målelementene flytte bare en viss avstand eller endrer grensen radius med en fast hastighet. 

Noen ganger må du kanskje animere målelementene på en mer rytmisk måte. For eksempel kan du ha ti forskjellige elementer som du vil flytte fra venstre til høyre med en forsinkelse på 500ms mellom starten av animasjonen for hvert element. På samme måte vil du kanskje øke eller redusere animasjonsvarigheten for hvert element basert på posisjonen.

I denne opplæringen lærer du hvordan du bruker Anime.js til riktig tid å animere ulike elementer ved hjelp av bestemte parametere. Dette vil tillate deg å kontrollere rekkefølgen der en animasjonssekvens spilles for enkelte elementer eller alle elementene.

Eiendomsparametere

Disse parametrene lar deg kontrollere varigheten, forsinkelsen og lempelsen av individuelle egenskaper eller en gruppe av egenskaper samtidig. De varighet og utsette parametere er spesifisert i millisekunder. Standardverdien for varighet er 1000ms eller 1s. 

Dette betyr at med mindre annet er angitt, vil en animasjon som er brukt på et element bli spilt i 1 sekund. De utsette parameter angir hvor lang tid animasjonen tar for å begynne når du allerede har utløst den. Standardverdien for forsinkelse er 0. Dette betyr at animasjonene starter så snart de utløses.

Du kan bruke lettelser parameter for å styre frekvensen der en animasjon spilles for varigheten den er aktiv. Noen animasjoner starter sakte, tar opp tempoet i midten, og senker du igjen på slutten. Andre starter i et godt tempo og senker deretter for resten av tiden. 

Imidlertid fullfører animasjonen i alle tilfeller alltid innen den angitte tiden ved hjelp av varighet parameter. Anime.js gir mange enkle funksjoner som du kan søke på elementene dine direkte ved å bare bruke navnene sine. For noen lettelsefunksjoner kan du også angi en verdi for elastisitet parameter for å kontrollere hvor mye elementets verdi spretter frem og tilbake som en vår. 

Du vil lære mer om ulike lettelsefunksjoner i den siste opplæringen av serien. Følgende kodestykke viser hvordan du bruker alle disse parameterne til forskjellige animasjoner.

var slowAnimation = anime (mål: '. square', translateY: 250, borderRadius: 50, duration: 4000); var delayAnimation = anime (mål: '. square', translateY: 250, borderRadius: 50, delay: 800); var cubicAnimation = anime (mål: '. square', translateY: 250, borderRadius: 50, duration: 1200, easing: 'easeInOutCubic');

Som du kan se, kan disse parameterne brukes uavhengig av andre parametere eller i kombinasjon med dem. De cubicAnimation har begge varighet og lettelser parameter brukt på den. Hvis varigheten ikke var oppgitt, ville animasjonen ha kjørt i 1 sekund. Nå vil den løpe i 1200 millisekunder eller 1,2 sekunder.

En stor begrensning av egenskapsparametere i eksempelet ovenfor var at alle animasjonene til målelementet vil ha det samme varighet, utsette og lettelser verdier. 

Dette kan eller ikke være ønsket oppførsel. For eksempel, i stedet for å oversette og endre grenseradiusen til målelementet samtidig, kan du først oversette målelementet og deretter animere grenseradiusen. Anime.js lar deg angi forskjellige verdier for varighet, utsette, lettelser og elastisitet parametere for individuelle egenskaper. Følgende kode og demo skal gjøre det tydeligere.

var indiParam = anime (mål: '. square', translateY: verdi: 250, roter: verdi: '2.125turn', backgroundColor: verdi: 'rgb (255,0,0)', varighet: 400, forsinkelse: 1500, lettelse: 'lineær', varighet: 1500);

I ovennevnte kode har alle egenskapene vi vil animere, forskjellige verdier. Bakgrunnsfargeanimasjonen har en varighet på 400ms, mens rotasjons- og oversettelsesanimasjonene bruker den globale varighetsverdien på 1500ms. 

Bakgrunnsfargeanimasjonen har også en forsinkelse, slik at en endring i fargen bare starter etter at 1500m er gått. De rotere og translateY Egenskaper bruker standardverdien for utsette og lettelser parametere fordi vi heller ikke har gitt en lokal eller global verdi for dem.

Funksjonsbaserte parametere

Egenskapsbaserte parametere er nyttige når du vil endre rekkefølgen og varigheten for å animere individuelle egenskaper. Men det samme varighet og utsette vil fortsatt bli brukt for individuelle egenskaper på alle målelementene. Funksjonsbaserte parametre lar deg spesifisere spesifikt varighet, utsette, elastisitet og lettelser for ulike målelementer på en kompakt måte. 

I dette tilfellet angir du verdiene for forskjellige parametere ved hjelp av funksjoner i stedet for tall. Disse funksjonene godtar tre parametere: mål, index, og targetCount. De mål parameter lagrer referansen til det nåværende målelementet. De index parameter lagrer indeksen eller posisjonen til det nåværende målelementet. De targetCount parameter lagrer totalt antall målelementer.

De mål parameteren er nyttig når animasjonsverdiene må settes basert på noen attributter av målelementet. For eksempel kan du lagre utsette, varighet eller lettelser verdier for et målelement i dataattributter og deretter få tilgang til dem senere. 

På samme måte kan du få tilgang til bakgrunnsfargen til et målelement, og deretter manipulere det for å angi en enestående unikt fargerverdi for individuelle elementer. På denne måten kan du animere alle elementene for å ha en bakgrunnsfarge som er 20% mørkere enn deres nåværende farge.

De index parameteren gir deg posisjonen til det nåværende målet i vår liste over målelementer. Du kan bruke den til å gradvis endre verdien for parametere som varighet og utsette for forskjellige elementer. 

Dette er generelt nyttig når du vil angi verdiene i stigende rekkefølge. Du kan også trekke fra index fra targetCount å angi verdiene i synkende rekkefølge. Følgende kodestykke bruker begge disse parametrene til å angi verdiene i stigende og synkende rekkefølge.

var delaySequence = anime (mål: '. square', translateY: 250, forsinkelse: funksjon (mål, indeks) returindeks * 200;); var delaySequenceR = anime (mål: '.square', translateY: 250, forsinkelse: funksjon (mål, indeks, targetCount) return (targetCount - index) * 200;);

Følgende kode angir et annet lettelser verdi for hvert målelement ved hjelp av index parameter.

var easeInValues ​​= ['easeInQuad', 'easeInCubic', 'easeInQuart', 'easeInQuint', 'easeInSine', 'easeInExpo', 'easeInCirc', 'easeInBack', 'easeInElastic']; var easyInSequence = anime (mål: '. square', translateY: 250, duration: 2000, easing: funksjon (mål, indeks) retur easeInValues ​​[index];, autoplay: false); 

Animasjonsparametere

Dette siste settet med parametre lar deg spesifisere antall ganger en animasjon skal spilles og retningen der den skal spilles. Du kan angi antall ganger en animasjon skal spilles med sløyfe parameter. Det er også en Auto spill parameter som kan settes til ekte eller falsk. Standardverdien er ekte, men du kan stoppe animasjonene fra å starte med seg selv ved å sette den til falsk.

De retning parameteren styrer retningen der animasjonen spilles. Det kan ha tre verdier: normal, omvendt, og alternere. Standardverdien er normal, som gjør at animasjonen spiller normalt fra startverdiene til sluttverdiene. Når målelementene når sluttverdien, hvis sløyfe verdien er større enn 1, hopper målelementene brått tilbake til startverdiene og starter animasjonen på nytt.

Når retning er satt til omvendt og sløyfe verdien er større enn 1, animasjonen blir reversert. Med andre ord starter målelementene animasjonen fra sin endelige tilstand og går bakover for å nå den opprinnelige tilstanden. Når de er i opprinnelig tilstand, hopper elementene tilbake til den endelige tilstanden og starter igjen omvendt animasjon. De alternere retningsverdien endrer animasjonsretningen etter hver løkke.

var normalLoop = anime (mål: '.square', translateY: 250, forsinkelse: funksjon (mål, indeks) returindeks * 200;, loop: 4, lettelse: 'easeInSine', autoplay: false);

I den følgende demoen har jeg satt antall løkker til fire slik at du enkelt kan merke forskjellen i animasjon av elementene i forskjellige moduser.

Siste tanker

I denne opplæringen lærte du om ulike typer parametere som kan brukes til å kontrollere animasjonen av målelementer i Anime.js. Egenskapsparametrene brukes til å kontrollere animasjonen av individuelle egenskaper. 

Du kan bruke dem til å kontrollere sekvensen der animasjonen spilles for individuelle elementer. Funksjonsparametrene lar deg styre timingen og animasjonsgraden for individuelle elementer i forhold til hele gruppen. Animasjonsparametrene lar deg kontrollere hvordan selve animasjonen spilles for forskjellige elementer.

Hvis du har noen spørsmål knyttet til denne opplæringen, vennligst gi beskjed i kommentarene.