, skabe en animeret 3d søjlediagram /figur,,,,, andel,,,,,,,, 17,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, truematter team blev for nylig har til opgave at skabe en sjov, sexet web - app, der giver numeriske data i en indtagende.efter at lægge hovederne sammen, vi kom op med et søjlediagram, der reagerer interaktivt til brugerinput uden gud forbyde det, ved at lade nogen sider.vi er meget glade for at være i stand til at dele det med kodning fællesskab.der er nogle css tricks med en dosis på jquery, og nogle grafiske magi, men når vi er færdige med denne forelæsning, vil vi have et smukt interaktive oversigt, som du kan vælge, at dit hjerte indhold.,,,, forbereder den grafik, grafiske elementer, og den måde, hvorpå disse elementer er skåret op og udarbejdet er det virkelig giver dette kort nogle - faktor. er der kun tre grafiske elementer, der er nødvendige for, at dette projekt, men vi er i alt væsentligt at skabe en illusion af css og billeder, grafik, skal være udformet med præcision. kortet består af tre separate pngs stablet oven på hinanden ved hjælp af css, to af dem er stationære (foran og bagved "glasagtige" figur foringsrør stykker), og som ersammen med jquery (den grønne bar stykke i midten).,,, grafiske element 1: tilbage på kortet, baggrunden del består af den nederste del af figur (som vi ser kun, når den er tom på 0%), tilbage, tilbage, og tilbage lige paneler.på denne bottommost lag, der omfatter alle de ansigter af grafen foringsrør, der har brug for at blive "er", når den figur er fuld eller delvis fulde.det er lag, som virkelig giver 3d illusion dybde.,, grafiske element 2: bar figur, animerede center del af denne figur er let at skabe.vi foreslår, at meget grundlæggende 3d extrude funktioner i illustrator, eller du kan også bare trække en tre - panelet form i photoshop, og kalder det en dag. farve din figur meget klart, oversaturating så meget som muligt.hvorfor?fordi i den endelige oversigt, den vil blive vist under et delvist gennemskuelige hylster, så den farve, vil være begrænset af det lag, der dækker det. det er meget vigtigt, at de øverste og nederste kant af dette stykke er gennemsigtige, så sørg for at redde det som et men heller ikke dér er menneskene sikre, lige så vigtigt at gøre dette: - nøjagtig de samme højde som figur foringsrør stykker.i vores billeder her, den midterste lag er kortere end foringsrør –, når du skaber din centrale del, den centrale bar lige så høj, som den kappe.hvis du gør det for kort, din figur vil aldrig være i stand til at fylde op til 100% korrekt.hvis du gør det alt for høje, diagram kan skyde ud af huset container, når det er animeret.,, grafiske element 3: det øverste foringsrør, her er, hvor vi kommer til den virkelige visuelle svindel, som sker i underkanten af det tredje og sidste stykke.mens de øverste venstre og højre kanter bevare gennemsigtighed, den nederste, venstre og højre kanter skal være fyldt i fast med samme farve som baggrund diagrammet vil sidde på. for eksempel, hvis din hjemmeside baggrund er sort, men to kanter af dette stykke skal udfyldes med en solid sort.i vort eksempel ovenfor, stedet baggrund er hvide, så vi har fyldt i bunden med hvide kanter.denne farve område effektivt skjuler nogen spredning fra midten søjlediagram stykke (grafiske element 2).uden denne del og den uigennemsigtige nederste kant, mister vi 3d fuldstændig.her er den figur uden:,, html, okay!vi har alle vores grafisk stykker fuldstændig, og vi er klar til at hoppe ind i koden.de i sig selv er ret ligetil.du kigger på et par grundlæggende form udvælge områder og et par divs for bar figur. lad os se på den fulde kode, så tager vi det stykke for stykke (det skal ikke misforstås.bemærk, at bar figur div elementer indgår i den form -, < noscript > < h3 > de skal gøre det muligt for javascript på dette område.< /h3 > < /noscript > < form id = "form1" action = "#" onsubmit = "returner falske" > <!- beholder til form elementer - > < div id = "formcontainer" > hvor mange penge har du lyst til at bidrage til besparelser, som hver måned?<select id="savings" onchange="calculate();"> \t<option selected="selected" value="0">- select an amount -</option> \t<option value="100">100 dollars</option> \t<option value="200">200 dollars</option> \t<option value="300">300 dollars</option> \t<option value="400">400 dollars</option> \t<option value="500">500 dollars</option> \t<option value="1000">1000 dollars</option> \t<option value="2000">2000 dollars</option> \t<option value="3000">3000 dollars</option> \t<option value="4000">4000 dollars</option> \t<option value="5000">5000 dollars</option> </select> What is your monthly income? <select id="income" onchange="calculate();"> \t<option selected="selected" value="0">- select an amount -</option> \t<option value="1000">1000 dollars</option> \t<option value="2000">2000 dollars</option> \t<option value="3000">3000 dollars</option> \t<option value="4000">4000 dollars</option> \t<option value="5000">5000 dollars</option> </select> </div> <div id="grapharea"> <h4>Percentage of Monthly Salary Saved</h4> <div id="p25">25%</div> <div id="p50">50%</div> <div id="p75">75%</div> <div id="p100">100%</div> <div id="graphcontainer"> \t<img id="graphbackground"src = "http://nettuts.s3.amazonaws.com/2032_animatedbargraph/images/graphbackground.png" alat = "bredde =" 262 "højde = 430" /> < img id = "graphbar" src = "http://nettuts.s3.amazonaws.com/2032_animatedbargraph/images/graphbar.png" alat = "bredde =" 262 "højde = 430" /> < img id = "graphforeground" src = "http://nettuts.s3.amazonaws.com/2032_animatedbargraph/images/graphforeground.png" alat = "bredde =" 262 "højde = 430" /> < /div > < /div > < /form >,, opdeling, da denne figur, afhænger af javascript, vi først kontrollere, at sikker på, at det er muligt i browseren. < noscript > < h3 > de skal gøre det muligt for javascript på dette område.< /h3 > < /noscript >, nu begynder vi form.med henblik på dette område, vi har brugt to enkle dropdowns, men du kunne ændre denne kode anvendes tekstfelter, radio - eller enhver anden form for input.de udvælger, onchange, attribut er i funktion "calculate();", som vi vil dække i jquery nedenfor. < div id = "formcontainer" > hvor mange penge har du lyst til at bidrage til besparelser, som hver måned?\t\t\t<select id="savings" onchange="calculate();"> \t\t\t\t<option selected="selected" value="0">- select an amount -</option> \t\t\t\t<option value="100">100 dollars</option> \t\t\t\t<option value="200">200 dollars</option> \t\t\t\t<option value="300">300 dollars</option> \t\t\t\t<option value="400">400 dollars</option> \t\t\t\t<option value="500">500 dollars</option> \t\t\t\t<option value="1000">1000 dollars</option> \t\t\t\t<option value="2000">2000 dollars</option> \t\t\t\t<option value="3000">3000 dollars</option> \t\t\t\t<option value="4000">4000 dollars</option> \t\t\t\t<option value="5000">5000 dollars</option> \t\t\t<. /udvælge > hvad er din månedlige indkomst?\t\t\t<select id="income" onchange="calculate();"> \t\t\t\t<option selected="selected" value="0">- select an amount -</option> \t\t\t\t<option value="1000">1000 dollars</option> \t\t\t\t<option value="2000">2000 dollars</option> \t\t\t\t<option value="3000">3000 dollars</option> \t\t\t\t<option value="4000">4000 dollars</option> \t\t\t\t<option value="5000">5000 dollars</option> \t\t\t</select> \t\t</div>,And finally, included within the form tag, the graphic elements:, \t\t<div id="grapharea"> \t\t\t<h4>Percentage of Monthly Salary Saved</h4> \t\t\t<div id="p25">25%</div> \t\t\t<div id="p50">50%</div> \t\t\t<div id="p75">75%< /div > < div id = "p100" > 100% < /div > < div id = "graphcontainer" > < img id = "graphbackground" src = "http://nettuts.s3.amazonaws.com/2032_animatedbargraph/images/graphbackground.png" alat = "bredde =" 262 "højde = 430" /> < img id = "graphbar" src = "http://nettuts.s3.amazonaws.com/2032_animatedbargraph/images/graphbar.png" alat = "bredde =" 262 "højde = 430" /> < img id = "graphforeground" src = "http://nettuts.s3.amazonaws.com/2032_animatedbargraph/images/graphforeground.png" alat = "bredde =" 262 "højde = 430" /> < /div > < /div >,, css,formcontainer {flyde: venstre}grapharea {holdning: relativ; flyde: venstre margen: 4em;}graphcontainer {holdning: relativ.bredde: 262px. højde: 430px; overløb: skjulte;}graphbackground,graphforeground {holdning: absolut;}graphbar {holdning: absolutte, top. 430px.}. graphlabel {holdning: absolut; tilbage: 270px;} #. {top: 365px;}p50 (top: 278px;}p75 (top: 191px;}p100 (top: 105px;}, sandsynligvis den mest afgørende at fange deres blik, her ergraphbar. bemærker, at voresgraphbar div starter på 430px – den samlede højde i søjlediagrammet.denne højde erklæring er det nummer, der er manipuleret via jquery at gøre figur manipulerer.hvis du har skabt din egen grafiske elementer, som er højere eller lavere end 430px, du bliver nødt til at tilpasse sig det antal passer til dit eget grafik. ligeledes vil også være nødt til at justere lageret afp25,p50,p75, ogp100.disse top, erklæringer, der de 25%, 50%, 75% og 100% markører i højre side af grafen. også se nærmere pågraphcontainer styles:,graphcontainer {holdning: relativ; bredde: 262px. højde: 430px; overløb: skjulte;} at sætte, holdning: relativ; erklæring om det ydre indpakning giver os bruge absolut position om tre divs inden forgraphcontainer, så vi kan stable dem oven på hinanden ved hjælp af css udligninger.om fastsættelse af en højde og bredde er også af afgørende betydning her – højde og bredde af denne div bør helt svarer til højde og bredde af grafiske elementer 1 og 3.og overfyldt: skjult, gemmer der sig animerede grafiske element 2, når det gælder uden for rammerne af emballagen., koden nu for jquery!det forbinder alle stykker sammen og giver i en tegnefilm.en hurtig gennemgang af den fulde jquery:, < manuskript > funktion calculate() {var zeropos = 355 og var løn = $("# indkomst"). val(); var besparelser = $("# opsparing"). val(); var procent = opsparing og løn, hvis (parseint (opsparing) > 0 & amp; & amp; parseint (løn) > 0) (hvis (parseint (opsparing) > parseint (løn) indberetning ("du kan ikke redde mere end du tjener - - ændre dit valg i overensstemmelse hermed."); andet (val = (% = = 0).zeropos: zeropos - (% * zeropos); $("# graphbar"). manipulerer ((top: val + "varer"}, 1500)}}} < /manuskript >,, den endelige fordeling, skabe en konstant til brug i beregningerne.zeropos er pixel værdi af, hvor den centrale grafiske element (diagram 2, den bevægelige del) skal være placeret på udgør 0%, var zeropos = 355; dernæst finde værdier, der udvælges af brugeren ved hjælp af den særlige kasser – indkomst og opsparing.- beregning af den procentvise værdi –%, var lønnen = $("# indkomst"). val(); var besparelser = $("# opsparing"). val(); var procent = opsparing og løn, er det næste skridt en validering, tjekker, at brugeren har udvalgt værdier fra både udvælge kasser.hvis de fortsætter vi med manuskriptet.ellers er vi intet gør. hvis (parseint (opsparing) > 0 & amp; & amp; parseint (løn) > 0), hvis de bruger har opført de relevante værdier, vi så sørge for, at de har valgt en løn, der er højere end det beløb, som de ønsker at bidrage til besparelser.hvis de fortsætter vi med manuskriptet.vi ellers lede brugeren til at ændre deres udvælgelser. hvis (parseint (opsparing) > parseint (løn) indberetning ("du kan ikke redde mere end du tjener - - ændre dit valg i overensstemmelse hermed."), nu er vi endelig, at kød fra manuskriptet – beregning af den holdning, som vi vil flyt den figur bar, og så skyder de jquery livfulde funktioner for at få det til at ske., val = (procent = = 0).zeropos: zeropos - (% * zeropos); $("# graphbar"). manipulerer ((top: val + "varer"}, 1500), ved beregningen af værdien for figur bar holdning – val – først afgøre, om den procentdel, er nul.så sæt værdi svarende til den zeropos konstant.ellers, beregnes den nye bar holdning ved at trække den procentuelle værdi multipliceret med nul - position værdi fra nul - position værdi.denne formel anvendes, fordi vi er inspirerende bar fra nul - position på bunden af kortet op til toppen. når pixel - værdi beregnes, ved vi, hvor vi er på vej, så bare kald den livfulde metode i jquery på graphbar objekt, som i den nye css værdi for den øverste position med en animation sats på 1500 (hastigheden af informationstiltag i millisekunder).så jquery er magien til os og flytter bar i figur i overensstemmelse hermed.forbryderiske à!jeg håber, du nød det, resten!,