Komme i gang Med Mojs-animasjonsbiblioteket Modulmodulen

I den tidligere opplæringen brukte vi mojs til å animere forskjellige HTML-elementer på en nettside. Vi brukte biblioteket til å hovedsakelig animere div elementer som så ut som firkanter eller sirkler. Du kan imidlertid bruke html modul for å animere alle slags elementer som bilder eller overskrifter. Hvis du faktisk har til hensikt å animere grunnleggende former ved hjelp av mojs, bør du sannsynligvis bruke Form-modulen fra biblioteket.

De Form modulen lar deg lage grunnleggende former i DOM ved hjelp av SVG. Alt du trenger å gjøre er å angi hvilken type form du vil opprette, og mojs vil ta vare på resten. Denne modulen lar deg også animere forskjellige former du lager. 

I denne opplæringen vil vi dekke grunnleggende om Form modul og hvordan du kan bruke den til å lage forskjellige former og animere dem.

Opprette figurer i Mojs

Du må instantiere en mojs Form objekt for å skape forskjellige former. Dette objektet aksepterer forskjellige parametere som kan brukes til å kontrollere farge, størrelse, vinkel, etc. av figurene du lager.

Som standard vil enhver form som du oppretter bruke dokumentlegemet som forelder. Du kan angi hvilket som helst annet element som foreldre ved hjelp av forelder eiendom. Du kan også tildele en klasse til enhver form du oppretter ved hjelp av klassenavn eiendom. Biblioteket vil ikke tildele noen standardklasse hvis du hopper over denne egenskapen.

Mojs har åtte forskjellige former innebygd slik at du kan opprette dem direkte ved å sette en verdi for form eiendom. Du kan sette verdien til sirkel å lage sirkler, rect å skape rektangler, og polygon å lage polygoner. Du kan også tegne rette linjer ved å sette verdien av form å være linjer. Biblioteket trekker to vinkelrette linjer hvis form verdien er kryss og en rekke parallelle linjer hvis form er lik. På samme måte kan zigzag-linjer opprettes ved å sette eiendomsverdien til sikksakk.

Formen objektet har også en punkter eiendom som har forskjellige betydninger for forskjellige former. Det bestemmer totalt antall sider i a polygon og totalt antall parallelle linjer i en lik form. De punkter Egenskapen kan også brukes til å angi antall bøyninger i a sikksakk linje.

Som nevnt tidligere lager mojs alle disse figurene ved hjelp av SVG. Dette betyr at Form objektet vil også ha noen SVG-spesifikke egenskaper for å kontrollere utseendet på disse figurene. Du kan angi fyllfarge på en mojsform ved hjelp av fylle eiendom. Når ingen farge er spesifisert, vil biblioteket bruke deeppink farge for å fylle formen. På samme måte kan du angi strekfargen for en form ved hjelp av hjerneslag eiendom. Når ingen strekkfarge er spesifisert, holder mojs streiken gjennomsiktig. Du kan kontrollere fylle og strekk ugjennomsiktighet for en form ved hjelp av fillOpacity og strokeOpacity eiendommer. De kan ha en verdi mellom 0 og 1.

Med Mojs kan du også kontrollere andre slagrelaterte egenskaper av en form. For eksempel kan du angi mønsteret av bindestreker og hull i en strekkbane ved hjelp av strokeDasharray eiendom. Denne egenskapen aksepterer både strenger og tall som gyldige verdier. Standardverdien er null, noe som betyr at streken vil være en solid linje. Bredden på et slag kan spesifiseres ved hjelp av strokeWidth eiendom. Alle strekkene blir som standard 2px brede. Formen på forskjellige linjer ved sluttpunktene kan spesifiseres ved hjelp av strokeLinecap eiendom. Gyldige verdier for strokeLinecap er rumpe, rund, og torget.

En hvilken som helst form du lager, plasseres i midten av det overordnede elementet som standard. Dette skyldes at venstre og Ikke sant Egenskaper for en form er satt til 50% hver. Du kan endre verdiene av disse egenskapene for å plassere elementene på forskjellige steder. En annen måte å kontrollere posisjonen til en form på er med hjelp av x og y eiendommer. De bestemmer hvor mye en form skal forskyves i henholdsvis horisontal og vertikal retning.

Du kan angi radius av en form ved hjelp av radius eiendom. Denne verdien brukes til å bestemme størrelsen på en bestemt form. Du kan også bruke radiusX og radiusY å spesifisere størrelsen på en form i en bestemt retning. En annen måte å kontrollere størrelsen på en form på er ved hjelp av skala eiendom. Standardverdien for skala er 1, men du kan sette den til noe annet nummer du liker. Du kan også skalere en form i en bestemt retning ved hjelp av scaleX og Scaley eiendommer.

Opprinnelsen til alle disse forandringene av en form er senteret som standard. For eksempel, hvis du roterer noen form ved å angi en verdi for vinkel eiendom, formen vil rotere rundt sentrum. Hvis du vil rotere en form rundt et annet punkt, kan du spesifisere det ved å bruke opprinnelse eiendom. Denne egenskapen aksepterer en streng som sin verdi. Setter den til '0% 0%' vil rotere, skala eller oversette formen rundt sitt øverste venstre hjørne. På samme måte setter du det på '50% 0% ' vil rotere, skala eller oversette formen rundt midten av toppkanten.

Du kan bruke alle disse egenskapene vi nettopp diskuterte for å lage et stort utvalg av former. Her er noen eksempler:

var circleA = new mojs.Shape (foreldre: ".container", form: "sirkel", venstre: 0, fyll: "oransje", strekk: "svart", strekkbredde: 5, isShowStart: true); varcirkelB = ny mojs.Skape (foreldre: ".container", form: "sirkel", venstre: 175, fyll: "oransje", strekk: "rødt", radiusX: 80, strekkbredde: 25, slagDasharray: 2, isShowStart: true); var rectA = new mojs.Shape (foreldre: ".container", form: "rect", left: 350, fyll: "rød", strekk: "svart", strekkbredde: 5, isShowStart: true); var rectB = ny mojs.Shape (foreldre: ".container", form: "rekt", venstre: 500, fyll: "blå", strekk: "blå", radiusX: 40, radius: 100, strekkbredde: 25, strokeDasharray: 20, isShowStart: true); var polyA = ny mojs.Shape (foreldre: ".container", form: "polygon", topp: 300, venstre: 0, fyll: "gul", strekk: "svart", strekkbredde: 10, poeng: 8, isShowStart: true); var polyB = ny mojs.Shape (foreldre: ".container", form: "polygon", topp: 350, venstre: 175, radiusX: 100, radiusY: 100, fyll: "fiolett", slag: "svart" strokeBredde: 6, strokeDasharray: "15, 10, 5, 10", strokeLinecap: "round", poeng: 3, isShowStart: true); var lineA = new mojs.Shape (foreldre: ".container", form: "cross", topp: 350, venstre: 375, strekk: "rød", strekkbredde: 40, isShowStart: true); var zigzagA = ny mojs.Shape (foreldre: ".container", form: "zigzag", topp: 500, venstre: 50, fyll: "gjennomsiktig", strekk: "svart", strekkbredde: 4, radiusX: 100, poeng: 10, isShowStart: true); var zigzagB = ny mojs.Shape (foreldre: ".container", form: "zigzag", topp: 500, venstre: 350, fyll: "blå", strekk: "gjennomsiktig", radiusX: 100, poeng: 50, isShowStart: true); 

Formene som er opprettet av den ovennevnte koden, vises i CodePen-demoen nedenfor:

Animerende figurer i Mojs

Du kan animere nesten alle egenskapene til en form som vi diskuterte i forrige avsnitt. For eksempel kan du animere antall poeng i et polygon ved å angi forskjellige innledende og endelige verdier. Du kan også animere opprinnelsen til en form fra '50% 50% ' til enhver annen verdi som '75% 75% '. Andre egenskaper som vinkel og skala oppfører seg akkurat som de gjorde i html modul. 

Varigheten, forsinkelsen og hastigheten til forskjellige animasjoner kan styres ved hjelp av varighet, utsette og hastighet egenskaper henholdsvis. Gjenta eiendommen fungerer også som det gjorde i html modul. Du kan stille den til 0 hvis du bare vil spille animasjonen en gang. På samme måte kan du sette det til 3 for å spille animasjonen 4 ganger. Alle lettelseverdiene som var gyldige for html modulen gjelder også for Form modul.

Den eneste forskjellen mellom animasjonsegenskapene til disse to modulene er at du ikke kan angi animasjonsparametrene individuelt for egenskapene i Form modul. Alle egenskapene du animerer vil ha samme varighet, forsinkelse, repetisjoner osv.

Her er et eksempel hvor vi animerer x-posisjonen, skalaen og vinkelen til en sirkel:

var circleA = new mojs.Shape (foreldre: ".container", form: "sirkel", venstre: 175, fyll: "rødt", slag: "svart", strekkbredde: 100, strekkDasharray: 18, isShowStart: true, x: 0: 300, vinkel: 0: 360, skala: 0.5: 1.5, varighet: 1000, gjenta: 10, erYoyo: sann, lettelse: "quad.in");

En måte å styre avspillingen av forskjellige animasjoner på er å bruke .deretter() Metode for å angi et nytt sett med egenskaper som skal animeres etter at den første animasjonssekvensen er fullført. Du kan gi alle animasjonsegenskapene nye innledende og endelige verdier inni .deretter(). Her er et eksempel:

var polyA = ny mojs.Shape (foreldre: ".container", form: "polygon", fyll: "rød", strekk: "svart", isShowStart: true, poeng: 4, venstre: 100, x: 0 : 500, strekkbredde: 5: 2, varighet: 2000, lettelse: 'elastic.in'), deretter (strokeWidth: 5, poeng: 4: 3, vinkel: 0: 720 : 1: 2, fyll: 'rødt': 'gul', varighet: 1000, forsinkelse: 200, lettelse: 'elastic.out');

Siste tanker

I denne opplæringen lærte vi hvordan å lage forskjellige former ved hjelp av mojs og hvordan å animere egenskapene til disse figurene. 

De Form Modulen har alle animasjonsegenskapene til html modul. Den eneste forskjellen er at egenskapene ikke kan animeres individuelt. De kan bare animeres som en gruppe. Du kan også kontrollere animasjonsavspillingen ved å bruke forskjellige metoder for å spille, pause, stoppe og gjenoppta animasjonene når som helst. Jeg dekket disse metodene i detalj i den første opplæringen av serien.

Hvis du har noen spørsmål relatert til denne opplæringen, er du velkommen til å legge inn en kommentar. I neste veiledning vil du lære om ShapeSwirl og vakle moduler i mojs.