I denne opplæringen skal vi lage en rekke bilder ut av SVG Triangles, og sette opp en animert overgang fra ett bilde til et annet på klikk. Det ser ut som noe som Faces of Power. Nettstedet. Disse animasjonene kan virkelig legge til interesse for et nettsted, spesielt en destinasjonsside , så vel som å forbedre Brukererfaring . Hvis du har et komplekst nettsted for å opprettholde, trenger du en super Web Hosting. service. bygge noe mindre komplisert? EN Nettstedbygger kan gjøre jobben.
For å sparke vi skal begynne med to arrays: en med verdiene vi animerer til, og en med verdiene vi animerer fra. Hver gang en lenke klikkes, skal vi finne SVG som passer til HREF. av den linken og få poeng Attributt for hver av polygonene i den spesifikke SVG.
Vi skal trekke ut alle koordinatene i poeng Attributt, få fyllfargen på polygonen, og legg deretter til disse som egenskaper til et objekt. Så legger vi alle disse objektene til en av de to arraysene: til array.
Vi bruker TweenMax til å animere verdiene til fra array til verdiene til til array. Når animasjonen er fullført, setter vi til array for å bli den nye fra array.
På første runde, fra Array vil inneholde alle punkterverdiene og alle fyllfarger på de synlige polygonene.
& lt; en href = "# nat" & gt; Nat & lt; / a & gt;
& lt; a href = "# bwl" & gt; bwl & lt; / a & gt;
& lt; a href = "# kevin" & gt; kevin & lt; / a & gt;
& lt; SVG class = "SVG-HOLDER" & gt;
Polygoner for #nat gå her
& lt; / svg & gt;
& lt; SVG id = "nat" klasse = "skjult" & gt;
Polygoner for #nat gå her
& lt; / svg & gt;
& lt; SVG id = "bwl" class = "skjult" & gt;
Polygoner for #bwl gå her
& lt; / svg & gt;
& lt; SVG id = "Kevin" klasse = "skjult" & gt;
Polygoner for #Kevin gå her
& lt; / svg & gt;
Det første trinnet er å faktisk lage bildene. For dette brukte jeg et verktøy som heter Primitiv (Sjekk ut Github repo. ). Bildene som brukes i opplæringen er personlige bilder av noen få venner.
Kjør dine valgte bilder gjennom det primitive verktøyet ved hjelp av kommandolinjen:
primitiv -i input.jpg -o output.svg -n 250 -M 1
-N 250. Angir 250 polygoner, -M 1 Angir en trekantform, og -Jeg input.jpg -o output.svg er inngang og utgang. Det er viktig at alle SVGs har samme antall polygoner og er den samme formen. Output.svg. vil være en samling av polygoner.
Etter å ha skapt SVGene lim inn dem i HTMLs kropp. Duplisere den første SVG og gi en av duplikatene i klassen .svg-holder .
De .svg-holder kommer til å være den eneste som er teknisk synlig; Det vil være holderen for alle polygonene som er animert i og ut av det. Gi alle SVGs bortsett fra holderen i klassen gjemt og en id. med et unikt navn. Dette bør samsvare med HREF. i koblingene. De skjulte SVGs vil bli skjult med Display: Ingen; . Det er viktig å sørge for HREF. av hver lenke samsvarer med id. av sin respektive SVG.
Deretter erklærer variablene:
La topolygonarray = [];
la frompolygonarray = [];
Nå må vi løpe gjennom hver av våre polygoner og få koordinatene i poengattributtet. Vi kan gjøre dette ved hjelp av regex:
const getcoordinates = (polygon) = & gt; {
returnere polygon.getattribute ("poeng"). Match (/ (-? [0-9] [0-9 \.] *), (-? [0-9] [0-9 \.] *) \ ( -? [0-9] [0-9 \.] *), (-? [0-9] [0-9 \.] *) \ (-? [0-9] [0-9 \.] *), (-? [0-9] [0-9 \.] *) /);
};
Hver gang en lenke er klikket, skal vi kjøre en funksjon som tar HREF på den klikkede linken som et argument og finne den tilsvarende SVG, få poengverdiene, animere det og oppdatere fra arrayet.
const updatePolygonarrays = (Idtoanimateto) = & gt; {
TopolygonArray = CreatePolygonPointsObject (Document.GetelementByid (Idtoanimateto) .QuerySalgArall ("Polygon"));
animentpolygons ();
frompolygonarray = topolygonarray;
}
Denne funksjonen ringer to andre funksjoner - CreatePolygonPointsObject. og animentpolygons. .
CreatePolygonPointsObject. konverterer alle polygonelementene til gjenstander som vi kan animere verdiene til, og animentpolygons. animerer polygonene inni .svg-holder .
const createpolygonpointsObject = (polygoner) = & gt; {
const polygonsarray = [];
polygons.foreach ((polygon, i) = & gt; {
constoordinater = getcoordinates (polygon);
polygonsarray.push ({
Fyll: Polygon.getTattribute ("fyll"),
en: koordinater ,
To: Koordinater ,
Tre: Koordinater ,
Fire: Koordinater ,
Fem: Koordinater ,
Seks: Koordinater
});
});
returnere polygonsarray;
}
Dette bruker vår GetCoordinates. Funksjon for å få alle koordinatene i poengattributtet og oppretter et objekt med hver koordinat og fyllingen. Det returnerer en rekke objekter. Jeg bestemte meg for å gjøre dem objekter fordi datatypen ser ut til å være enklere å jobbe med når du animerer mange verdier samtidig.
La oss bruke tweenmax til å animere polygonene.
const animatepolygons = () = & gt; {
const Polygons = Document.QuerySelector (". SVG-HOLDER"). QuerySectorAll ("Polygon");
FromPolygonArray = CreatePolygonPointsObject (polygoner);
frompolygonarray.foreach ((obj, i) = & gt; {
Tweenmax.to (obj, 1, {
en: topolygonarray [i] .one,
To: Topolygonarray [i] .two,
Tre: TopolygonArray [i]. Tree,
Fire: TopolygonArray [i] .four,
Fem: TopolygonArray [i] .Five,
Seks: TopolygonArray [i] .six,
Enkel: Power3.Ereaseout,
OnupDate: () = & gt;
{
Polygoner [i] } `);
}
});
});
}
På hver ramme av animasjonen animerer denne løkken poengsattributtet til de nåværende synlige polygonene i .svg-holder til de nye verdiene som er angitt ovenfor. De Onupdate. metode i Tweenmax.to. kalles hver gang animasjonsoppdateringene, så her blir det løp på hver endring i verdiene til obj.one. , obj.two. , obj.three. , og så videre. På denne måten er de punkterverdiene animere og formen morphs for å ha forskjellige koordinater.
Deretter kan vi animere fyllingen. For hver polygon i .svg-holder , sett fyllingen til fyllingen i TopolygonArray. det er i samme indeks.
polygons.foreach ((polygon, i) = & gt; {
const tocolor = topolygonarray [i] .Fyll;
Tweenlite.to (polygon, 1, {
Fyll: TOCOLOR,
Enkel: Power3.EreEout.
});
});
Nå vil polygonene animere deres koordinater og deres fyllingsfarger som forventet. Og du er ferdig! Vil du lagre sidene dine? Eksporter dem som pdfs og slipp dem inn skylagring .
For å forbedre webdesignene dine videre, gå videre til vår konferanse og oppleve en pakket tidsplan for bransjeledende høyttalere, workshops og verdifulle nettverksmuligheter. Ikke gå glipp av det! Få din generere billett nå .
Les mer:
[1. 3] (Bilde Kreditt: Jonathan Hardesty) Side 1 av 2: Side 1 ..
[1. 3] Å vite hvordan å tegne muskler i bevegelse vil legge fluiditet og bevegelse i et stillbilde. Denne opplæringen vil stude..
[1. 3] (Bilde Kreditt: Oliver Sin) Side 1 av 2: Hvordan tegne et hode fra forskjellige vinkl..
Velkommen til vår guide på hvordan å tegne en løve. Kongen av jungelen, løven er en, om ikke de største, sterkeste og kraftigste felinene i verden. D..
[1. 3] De mange fordelene med SVG - inkludert uendelig skalerbare vektorbilder, små filstørrelser og direkte integrasjon med DOM..
[1. 3] Side 1 av 2: Side 1 Side 1 Side 2 ..
[1. 3] I årevis ble jeg skremt ved å jobbe digitalt. Noe om plastnibaren på en plastoverflate følte seg for å knuse for meg. ..
[1. 3] Brann, oversvømmelser og ødeleggelse er noen av de vanligste oppgavene som er gitt til VFX-artister og i dette 3D..