CSS3 tranziții și transformări de la zero

Există câteva exemple uimitoare de transformări și tranziții CSS și, în timp ce este posibil să fiți sufocați de ei, există șanse mari să fiți copleșiți și puțin intimidați! Acest tutorial vă va duce înapoi la elementele de bază. Vom crea câteva mișcări de tranziție CSS3 fundamentale, pas cu pas.

O notă rapidă privind suportul pentru browsere:

Suportul în cadrul browserelor este deja destul de rezonabil. Firefox 3.5, Chrome, Opera 10.5, Safari 3.1 și Internet Explorer 9.0 te-ai referit la transformări. IE este puțin mai adaptabil în ceea ce privește tranzițiile, deși este prevăzut sprijin pentru IE10.

Axele și grila

Pentru a ajuta la înțelegerea mișcării, vom lucra cu ușurință pe o rețea de axe (pe care o veți recunoaște probabil din matematica de bază). Vom folosi X și y coordonate pentru a muta obiectele noastre.

Singura diferență (crucială) este că pe axa noastră valoarea -y este de mai sus axa x, în timp ce aceasta ar fi în mod normal sub ea. De ce? Ei bine, HTML și CSS (împreună cu alte tehnologii web, cum ar fi ActionScript) folosesc un inversat Sistemul de coordonate cartezian, deoarece paginile web încep de la stânga sus și se citesc în jos. Deci acum știi :)

Notă: Voi presupune că deja cunoașteți structura de fișiere HTML și CSS. Voi trece prin a explica cum să configurați fișierul CSS, să plasați imagini și să modelați Axa. Accentul nostru se va pune pe animarea obiectelor. Dacă nu sunteți încrezător că abilitățile HTML + CSS sunt de până la zero, aruncați o privire la noul Tuts + Premium HTML & CSS în 30 de zile (care este gratuit) și veți învăța tot ce trebuie să știți.

1. Mișcarea orizontală

Prima mișcare pe care o vom demonstra este "orizontală"; vom anima obiectul pentru a vă deplasa spre dreapta și spre stânga.

Mutarea la dreapta

Pentru a muta un obiect din poziția sa inițială, folosim: transformă: traduce (x, y);, unde valoarea x ar trebui să fie pozitivă, iar valoarea y ar trebui să fie 0 pentru a muta obiectul spre dreapta.

HTML

Deschideți editorul text preferat și introduceți următoarea marcaj html, apoi salvați fișierul.

Am atribuit trei clase imaginii:

  • obiect: Utilizăm această clasă pentru a stabili reguli generale pentru toate obiectele pe care le vom folosi.
  • van: Vom folosi diferite obiecte pentru a demonstra fiecare animație, așa că le vom aplica și alte clase. Astfel putem poziționa fiecare obiect separat.
  • misca-te la dreapta: Vom muta obiectul utilizând această clasă, fiecare mișcare va avea o clasă diferită.

CSS

În primul rând, vom plasa obiectul (imaginea van) în centrul grilajului.

.obiect poziție: absolută;  .van sus: 45%; stânga: 44%; 

În acest exemplu vom muta obiectul 350px spre dreapta. Sintaxa este transformă: traduce (350px, 0); și obiectul se va mișca atunci când Axa este plutind. Prin urmare, declarăm acest lucru #axis: hover .move-right.

#axis: hover .move-right transform: traducere (350px, 0); -webkit-transform: traduce (350px, 0); / ** Chrome & Safari ** / -o-transform: traduceți (350px, 0); / ** Opera ** / -moz-transform: traduce (350px, 0); / ** Firefox ** /

Proprietatea transformă CSS va muta numai obiectul de la un punct la altul, nu va anima între cele două stări. Pentru a face acest lucru, trebuie să adăugăm o proprietate de tranziție în clasa .object.

.obiect poziție: absolută; tranziție: ușurință în ușă; -webkit-transition: toate 2s ease-in-out; / ** Chrome & Safari ** / -moz-tranziție: toate 2s easy-in-out; / ** Firefox ** / -o-tranziție: toate 2s easy-in-out; / ** Opera ** /

Această regulă de tranziție va spune browserului să animeze toate proprietățile atașate la obiect pentru 2 secunde folosind un ușurința în-out (tween), fără întârziere.

Putem folosi 6 tipuri de funcții de tranziție-temporizare:

  • liniar: tranziția va avea viteză constantă de la început până la sfârșit.
  • uşura: tranziția va începe încet, apoi va deveni mai rapidă, înainte de a se termina încet.
  • ușurința în: tranziția va începe încet.
  • ușura-out: tranziția se va încheia încet.
  • ușurința în-out: tranziția începe și se termină încet.
  • cub-bezier: definiți valori specifice pentru propria dvs. tranziție.
Vizualizați demonstrația

Mutarea spre stânga

Pentru a muta un obiect spre stânga, este suficient să introduceți o valoare negativă în X coordonare, în timp ce y trebuie să rămână coordonatele 0. În acest exemplu vom muta obiectul -350px la stanga.

HTML

Creați un alt fișier HTML și introduceți următorul marcaj.

De data aceasta folosim mută la stânga pentru a seta regula CSS pentru mutarea obiectului în stânga.

CSS

Apoi, introducem -350px ca coordonată x. transformă: traduce (-350px, 0); pentru a muta obiectul spre stânga. Destul de ușor, corect?

#axis: hover .move-stânga transform: traduce (-350px, 0); -webkit-transform: traduce (-350px, 0); / ** Safari & Chrome ** / -o-transform: traduce (-350px, 0); / ** Opera ** / -moz-transform: traduce (-350px, 0); / ** Firefox ** /

Deoarece am stabilit anterior regula de tranziție în clasa .object, nu trebuie să o setăm din nou.

Vizualizați demonstrația

2. Mișcarea verticală

Mutarea unui obiect pe verticală este destul de ușoară, aproape identică cu mișcarea orizontală. Singura diferență este că vom folosi valoarea -y pentru a muta obiectul în sus și valoarea y pentru a vă deplasa în jos.

Mutarea în sus

HTML

Marcajul HTML este identic cu cele două exemple anterioare. Cu toate acestea, înlocuim obiectul cu o rachetă (pentru scopuri ilustrative), iar clasa pe care o folosim pentru mișcarea ascendentă este muta-up.

CSS

Ca și cu vanul nostru, vom poziționa racheta în centrul grilajului:

.racheta top: 43%; stânga: 44%; 

După cum am menționat mai înainte, coordonatele y ar trebui să fie negative, pentru a muta racheta în sus. în acest caz îl mutăm cu 350 de pixeli în sus.

#axis: hover .move-up transform: traducere (0, -350px); -webkit-transform: traduce (0, -350px); -o-transform: traduce (0, -350px); -moz-transform: traduce (0, -350px); 
Vizualizați demonstrația

Mutarea în jos

Metoda de mutare a unui obiect în jos este (surpriză, surpriză) opusul deplasării în sus; valoarea coordonatei y trebuie să fie pozitivă, iar coordonata x ar trebui să rămână 0. Sintaxa este transform: traduce (0, y);

HTML

În acest exemplu, vom demonstra deplasarea în jos folosind o monedă. Geniu!

CSS

#axis: hover .move-down transform: traduce (0,350px); -webkit-transform: traduce (0,350px); -o-transform: traduce (0,350px); -moz-transform: traduce (0,350px); 
Vizualizați demonstrația

3. Mișcarea diagonală

Pentru a crea o tranziție diagonală, vom combina valorile ambelor coordonate X și y. Sintaxa ar trebui să fie transforma: traduce (x, y). În funcție de direcție, valoarea lui X și y ar putea fi negativă sau pozitivă.

HTML

Și pentru a ne demonstra mișcarea diagonală, vom folosi un avion de hârtie.

CSS

Vom direcționa spre nord-est. Pentru X valoarea de coordonate introduce o valoare pozitivă (350px) și pentru y coordonate vom introduce o valoare negativă (-350px). Astfel, sintaxa va arăta astfel: transforma: traduce (350px, -350px);

#axis: hover .move-ne transform: traduceți (350px, -350px); -webkit-transform: traduce (350px, -350px); -o-transform: traduce (350px, -350px); -moz-transform: traduce (350px, -350px); 

Simțiți-vă liber să experimentați și să direcționați mișcarea obiectelor de-a lungul celorlalte axe diagonale.

Vizualizați demonstrația

4. Rotația

Mișcarea rotativă în CSS3 este reglată folosind o coordonată radială de la 0 ° la 360 °. Pentru a roti un obiect aplicați pur și simplu următoarea proprietate css: transform: roti (ndeg); Unde n este gradul de rotație.

360 ° în sensul acelor de ceasornic

Pentru a roti un obiect în sensul acelor de ceasornic, introduceți o valoare pozitivă pentru rotate (ndeg) proprietate.

HTML

Pentru acest exemplu vom folosi un creion pentru a demonstra mișcarea.

CSS

Și vom roti obiectul în 360 de grade în sensul acelor de ceasornic.

#axis: hover .rotate360cw transform: rotire (360deg); -webkit-transform: roti (360deg); -o-transform: roti (360deg); -moz-transform: roti (360deg); 
Vizualizați demonstrația

360 ° Counter clockwise

Pentru a efectua rotația în sensul invers acelor de ceasornic, introduceți (ați ghicit-o) o valoare negativă.

HTML

Încă mai folosim creionul ca obiect, dar vom schimba clasa la .rotate360ccw.

CSS

#axis: hover .rotate360ccw transform: rotire (-360deg); -webkit-transform: rotire (-360deg); -o-transform: rotire (-360deg); -moz-transform: rotiți (-360deg); 
Vizualizați demonstrația

5. Scalarea

Scala este o caracteristică interesantă în CSS3. Utilizând proprietatea scară (n) sau scară (x, y) putem mări sau micșora un obiect în cadrul codului nostru HTML. Obiectul va fi scalat în funcție de valoarea n / x, y, unde axa x este pentru lățime, iar axa y reprezintă înălțimea. De exemplu, dacă introducem scara (2), obiectul va fi scalat de două ori (cu 200% mai mare) de-a lungul ambelor axe, de la dimensiunea sa inițială.

Să aruncăm o privire la exemplul de mai jos.

În acest exemplu, vom mări dimensiunea mașinii cu 200%, dând iluzia că mașina se apropie (sperăm).

HTML

Din nou, marcajul HTML abia a fost modificat, dar de data aceasta folosim o mașină ca obiect.

CSS

#axis: hover .larger transform: scară (2); -webkit-transform: scara (2); -o-transform: scară (2); -moz-transform: scară (2); 
Vizualizați demonstrația

6. Mișcări multiple

După ce am jucat cu mișcări de bază și se transformă, vom încerca acum să combinăm unele dintre ele. Hai să aruncăm o privire.

HTML

De data aceasta, vom folosi un bumerang pentru a demonstra animația.

CSS

Planul este de a muta bumerangul în diagonală, în timp ce efectuați rotații în același timp. Pentru a face acest lucru, trebuie doar să enumerăm transformările separate de spații.

#axis: hover .multiple transform: traduceți (350px, -350px) rotiți (360deg); -webkit-transform: traduceți (350px, -350px) rotiți (360deg); -o-transform: traduceți (350px, -350px) rotiți (360deg); -moz-transform: traduceți (350px, -350px) rotiți (360deg); 
Vizualizați demonstrația

Concluzie

Acestea sunt exemple de bază și există o sferă uriașă de dezvoltare a acestora în continuare! Amintiți-vă: luați în considerare suportul browserului atunci când folosiți proprietățile CSS3 și nu vă faceți griji cu aceste efecte - ar trebui să vă îmbunătățiți designul, să nu îl înecați!

Mai multe exemple de tranziție CSS3

Pentru mai multă inspirație, aruncăm o privire asupra unor animații și efecte cool CSS3 pe Envato Market. Iată câteva exemple:

1. Flip Flip 'n' Fade

Aceste tranziții superbe, subtile și utile CSS3 flip, fade și strălucirea vă ajută să extindeți proprietățile imobiliare ale unui site și să utilizați spațiul mai eficient. Orice conținut, în totalitate, inclusiv videoclipuri, hărți, imagini etc., poate fi rotit (sau decolorat).

Friendly Flip 'n' Fade pe piața Envato

2. Fundal animat de Noapte Sky

Acesta este un utilitar bazat pe CSS / jQuery, care vă va permite să creați un efect neobișnuit de fundal pentru cerul de noapte animat pentru site-ul dvs..

Fundal animat pe cerul nocturn pe piața Envato

3. Animații Pure CSS3 Loader

Acesta este un set de animații Pure CSS3 Loader. Aceste efecte animate CSS3 de 15+ sunt compatibile cu toate browserele majore.

Pure animatoare CSS3 Loader pe Envato Market

4. TFigure - Subtitrări imagine

Aceasta este o colecție de cinci subtitrări animate CSS animate. Acest kit oferă câteva efecte deosebite și vă va economisi mult timp atunci când creați site-uri web.

tFigure - Subtitrări imagine pe Envato Market

5. Zid mozaic social

Acest element vă permite să vă creați propria rețea de mozaic cu ajutorul aplicației dvs. sociale pentru personal și mai mult. Acesta include 28 de icoane sociale și o gamă de configurații diferite de rețea.

Zidul mozaic social pe piața Envato