Pagrindinis » Kodavimas » Žvilgsnis į CSS3 2D transformacijas

    Žvilgsnis į CSS3 2D transformacijas

    Šis straipsnis yra dalis mūsų „HTML5 / CSS3 vadovų serija“ - skirta padėti jums tapti geresniu dizaineriu ir (arba) kūrėju. Paspauskite čia pamatyti daugiau tos pačios serijos straipsnių.

    The Transformacijos modulis yra milžiniškas papildymas CSS3, tai reiškia, kaip mes manipuliuojame tinklalapio elementais į kitą lygį.

    Yra keletas eksperimentų, kurie mane tikrai nustebina, pavyzdžiui, tokie pavyzdžiai. Tačiau mes nesiruošsime sukurti tik CSS piktogramos, kuri gali kažkaip paversti Autobotu, nes ji gali būti didžiulė ir ne visai tinkama naudoti ir realiame gyvenime.

    Vietoj to, šį kartą grįšime ir peržiūrėsime CSS3 2D transformacijų pagrindus, kad pamatytume, kaip jis veikia pagrindiniame lygmenyje.

    Sintaksė

    CSS3 transformacijų modulis iš esmės leidžia mums tam tikru mastu paversti elementą, pvz., Versti, keisti, keisti ir nuplėšti.

    Oficiali sintaksė yra transformuoti: metodas (vertė). Tačiau, kaip ir bet kurie kiti CSS3 puikūs papildymai, kurie vis dar yra ankstyvuose etapuose, dabartinėms naršyklėms vis dar reikia sintaksės versijos, kad paleistumėte transformacijas. Taigi, visa sintaksė pasirodys taip:

     transformavimas: metodas (vertė); / * W3C oficiali sintaksė * / -o-transformacija: metodas (vertė); / * Opera 10.5+ * / -ms-transform: metodas (vertė); / * Internet Explorer 9.0+ * / -moz-transform: metodas (vertė); / * Firefox 3.6+ * / -webkit-transform: metodas (vertė); / * „Chrome“ / „Safari 3.2+“ * 

    Be to, aukščiau paminėtas metodas yra transformavimo funkcijos, kurią galima pakeisti vienu iš šių: išversti (), skalė(), pasukti () arba pasviręs ().

    Vertė

    Dauguma metodo vertės atitiks X ašis ir Y ašis. Jei prisiminsite „Dekarto“ koordinačių sistemą iš savo „Math“ klasės vidurinėje mokykloje, pagrindinis principas yra gana panašus, X ašis - tai horizontaliai linija ir Y ašis yra vertikaliai linija.

    Išskyrus rotaciją. The rotacija naudos polinės koordinatės kuri yra išreikšta laipsniais nuo 0 iki 360.

    Visų metodų vertės gali būti neigiamos arba teigiamos. Vis dėlto atkreipkite dėmesį, nes internetinis puslapis yra skaitomas iš eilės iš viršaus į apačią, todėl žiniatinklyje esanti „Y“ ašis veikia priešingai nei originalus Dekarto koordinatės principas. Tai reiškia, kad pridėjus neigiamą vertę Y ašis, vietoj to jis pereis į viršų.

    Naudojant transformacijas

    Dabar pažiūrėkime šį pagrindinį demonstravimą, kad pamatytume transformacijos procesą.

    Aš verčiu

    Negalima drumstyti su terminu versti, ji ne verčia užsienio kalbą. The versti čia iš tikrųjų yra elementų judėjimo būdas.

    Metodas turi dvi reikšmes; X ir Y. X reikšmė kaip jau minėjome, elementas bus horizontaliai; į kairę arba į dešinę, kol Y vertė bus vertikaliai apačioje arba į viršų.

    Dabar žiūrėkime keletą paprastų demonstracijų toliau:

     div plotis: 100px; aukštis: 100px; transformuoti: versti (100px, 250px);  

    Pirmiau pateiktas fragmentas perkelia elementą 100px į dešinę ir 250 pikselių į apačią.

     div plotis: 100px; aukštis: 100px; transformuoti: versti (100px, 0);  

    Pirmiau minėtas fragmentas perkelia elementą į dešinę 100px, nes mes nuliuojame Y ašį. Tada, jei norime perkelti elementą į kairę, reikia tik nustatyti X ašį neigiamai:

     div plotis: 100px; aukštis: 100px; transformuoti: išversti (-100px, 0);  
    • „Versti“ demo

    Alternatyviai, mes galime perkelti elementą į vieną kryptį su šiais atskirais metodais; translateX () ir išversti (), skirtumas yra tas, kad kiekvienas iš šių metodų priima tik vieną vertę.

    Taigi, praktiškai kalbant, transformuoti: išversti (-100px, 0) taip pat yra lygus transformuoti: translateX (-100px).

    II - Skalė

    The skalė metodas leidžia mums padidinti arba sumažinti elementus nuo jo tikrojo dydžio. Skalės vertė yra tokia pati kaip ir versti aukščiau, jame taip pat yra X ir Y. Vienintelis skirtumas yra tai, kad mes nenurodome vieneto. Štai pavyzdys:

     div plotis: 100px; aukštis: 100px; transformuoti: skalę (1.5);  

    Anksčiau pateiktas pavyzdys padidins div 1.5 arba 150% tikrojo dydžio, ir kadangi mes ją lygiai vertiname tiek X, tiek Y kryptimis, turime tik tai deklaruoti vienoje vertėje. Taip pat galite tai deklaruoti transformacija: skalė (1.5,1.5); jei norite išsamesnės informacijos, tai tik padarys tą patį.

    Be to, jei norime sumažinti elementą, mes naudosime vertę nuo 0,999 iki absoliutaus 0, kaip ir toliau pateiktame pavyzdyje, kuris sumažins „div“ dydį 50% arba pusę:

     div plotis: 100px; aukštis: 100px; transformacija: skalė (0,5);  

    Tačiau būkite atsargūs, jei nustatysite vertę absoliučią “0” div tiesiog išnyks, taigi, jei neturite pagrįstos priežasties tai padaryti, nenorėčiau to daryti.

    • „Scale“ demonstracija

    III - Pasukti

    Kaip minėjome anksčiau šiame pranešime, pasukti metodas naudoja polines koordinates, todėl vertė nurodoma laipsniais. Štai du pavyzdžiai

    Toliau pateiktas fragmentas sukasi div 30 laipsnių pagal laikrodžio rodyklę.

     div plotis: 100px; aukštis: 100px; transformuoti: pasukti (30deg);  

    Neigiama vertė, kaip parodyta toliau pateiktame pavyzdyje, sukasi div priešinga kryptimi (prieš laikrodžio rodyklę) tuo pačiu laipsniu.

     div plotis: 100px; aukštis: 100px; transformuoti: pasukti (-30deg);  
    • „Pasukti“ demonstraciją

    IV - Skew

    The pasviręs metodas leidžia mums sukurti lygiagrečią programą. Jame taip pat yra dvi X ir Y ašių vertės. Tačiau pati vertė nurodoma laipsniu, o ne linijiniais matavimais, kaip mes naudojame skalė arba versti metodas. Štai pavyzdys:

     div plotis: 200px; aukštis: 100px; transformuoti: skew (30deg, 10deg);  
    • „Skew“ demonstracija

    V - Daugialypis metodas

    The transformuoti nuosavybė neapsiriboja vien tik vienu metodu, iš tikrųjų mes galime į vieną deklaraciją įtraukti kelis metodus:

     div plotis: 100px; aukštis: 100px; transformuoti: translateX (100px) sukasi (45deg);  

    Pirmiau minėtas fragmentas perkelia elementą 100px į dešinę ir tuo pačiu metu sukasi 45 laipsnių kampu.

    „Multiple Method“ demonstracija.

    Pakeisti kilmę

    The trans-kilmės - kaip rodo jo pavadinimas - naudojamas valdyti transformacijos pradžios tašką. Jei mes aiškiai nenurodome šios savybės su tokia sintakse transformacijos kilmė: X Y;, tada naršyklė nustatys numatytąją reikšmę, kuri yra 50% X ir 50% Y.

    Dabar, jei nurodome transformuoti iki 0 (X) 0 (Y) transformacija prasidės viršutiniame kairiajame kampe.

    Vėlgi, visoms naršyklėms dar reikia prefikso versijos, kad galėtumėte jį skambinti. Taigi, čia yra visa versija, užtikrinanti, kad ji veikia naujausiose naršyklėse:

     -webkit-transform-origin: X Y; -moz-transform-origin: X Y; -o-transformacijos kilmė: X Y; -ms-transform-origin: X Y; transformacijos kilmė: X Y; 
    • Demo „Transformuoti kilmę“

    Išvada

    Mes pasiekėme visus keturis esminius transformacijos metodus; išversti, masto, pasukti ir pasvirti

    Tačiau, kaip minėta, šis modulis vis dar yra ankstyvame etape, todėl, jei šiuos metodus taikysite kitoje svetainėje, įsitikinkite, kad jis nesuderinamas su nesuderinamomis naršyklėmis (aš ne apie IE6 čia).

    Galiausiai, galite peržiūrėti visą demonstraciją arba atsisiųsti šaltinį iš šių nuorodų.

    • Demo
    • Atsisiųsti šaltinį