Curs Css


Proprietatea "animation", sau sub-proprietatile ei pot fi utilizate pentru a anima alte proprietati CSS aplicate elementelor HTML, cum ar fi: color, background-color, height, sau width.


• O alta metoda de a anima proprietatile unui element HTML cu CSS este utilizand proprietatea "transition". Vedeti tutorialul: CSS3 transition.


Elementul <style> din aceste exemple se adauga in sectiunea <head> din pagina.


Creare Animatie cu CSS

Ca sa faceti animatii cu CSS, mai intai se definesc "keyframes" cu un nume pentru animatie, folosind instructiunea @keyframes, in care se definesc stilurile CSS pe care trebuie sa le aibe elementul HTML la un moment dat.
Apoi, se adauga proprietatea animation (sau sub-proprietatile) la elementul HTML, folosind acelasi nume.

- In urmatorul exemplu se defineste si se adauga animatia "ex1_anim" la elementul "#anim_ex1". Animatia va dura 4 secunde de la inceput pana la sfarsit (0% la 100%), si va schimba gradual valoarea margin-left pentru #anim_ex1 de la "0" la "80%". Aceasta va avea ca efect miscarea acelui <div> de la stanga la dreapta.
<style>
 /* The animation code */
@keyframes ex1_anim {
 0% { margin-left: 0;}
 100% { margin-left: 80%;}
}

/* The element to apply the animation to */
#anim_ex1 {
 animation-name: ex1_anim;
 animation-duration: 4s;
 background-color: red;
 padding: 20px 0;
 width: 90px;
}
</style>

<div id='anim_ex1'>HTML Div</div>
- Demo:
- Clic pe acest buton: ca sa vedeti rezultatul codului de deasupra.
HTML Div

Daca proprietatea animation-duration nu este adaugata, animatia nu se va efectua, deoarece valoarea implicita e 0s (0 secunde).


Animatie CSS - pasi multipli

In exemplu de sus, animatia "@keyframes ex1_anim" are definiti doi pasi: 0% este inceputul animatiei, si 100% e sfarsitul.
Puteti adauga oricat de multi pasi (schimbari de stil) doriti.

- Urmatorul exemplu are patru pasi pentru animatie (0%, 30%, 55, 100%) care seteaza diferite proprietati CSS pentru a transforma, roti, muta si schimba culoarea de fundal in mod gradual.
<style>
@keyframes ex2_anim {
 0% { margin-left: 0;}
 30% {
 border-radius: 100%;
 transform: scale(1.5);
 }
 55% {
 transform: rotate(180deg);
 }
 100% {
 background-color: #0000e0;
 margin-left: 85%;
 transform: rotate(360deg);
 }
}

#anim_ex2 {
 animation-name: ex2_anim;
 animation-duration: 4s;
 background-color: red;
 padding: 20px 0;
 width: 90px;
}
</style>

<div id='anim_ex2'>HTML Div</div>
- Demo:
- Clic pe acest buton: ca sa vedeti rezultatul codului de deasupra.
HTML Div

Animatie CSS - sub-proprietati

Sunt mai multe sub-proprietati care se pot utiliza la configurarea animatiei cu CSS. Mai jos este o lista cu aceste sub-proprietati.

- Iata un exemplu cu unele din acestea. Animatia incepe dupa 1 secunde (delay 1) si e rulata de 3 ori, "alternate" (prima rulare in fata, a doua inapoi), si "linear" (cu aceeasi viteza de la inceput pana la sfarsit).
Cand animatia se termina, elementul ramane in pozitia din fata (forwards, cu stilul definit la ultimul pas, 100%): animation-fill-mode: forwards;.
<style>
@keyframes ex3_anim {
 0% { margin-left: 0;}
 50% {
 transform: scale(.8);
 transform: rotate(225deg);
 }
 100% {
 background-color: #5588ed;
 border-radius: 100%;
 margin-left: 85%;
 transform: rotate(450deg);
 }
}

#anim_ex3 {
 animation-name: ex3_anim;
 animation-duration: 2.5s;
 animation-delay: 1s;
 animation-direction: alternate;
 animation-iteration-count: 3;
 animation-fill-mode: forwards;
 animation-play-state: running; 
 animation-timing-function: linear;
 background-color: red;
 padding: 20px 0;
 width: 80px;
}
</style>

<div id='anim_ex3'>HTML Div</div>
- Demo:
- Clic pe acest buton: ca sa vedeti rezultatul.
HTML Div

Sub-proprietati pentru animatia CSS


Animatie cu CSS la pseudo-clase si pseudo-elemente

Animatia cu CSS se poate crea si la pseudo-elemente (:before, :after), si poate fi aplicata la pseudo-classe (precum :hover).
- Exemplu, cand mouse-ul este deasupra elementului #anim_pse, se creaza un pseudo-element cu ":after", care va fi animat.
<style>
@keyframes pse_anim {
 0% {
 left: 50%;
 height:0;
 width: 0;
 }
 50% {
 transform: rotate(180deg);
 }
 100% {
 border-radius: 100%;
 transform: rotate(360deg);
 left: 250px;
 height: 40px;
 width: 40px;
 }
}

#anim_pse {
 position: relative;
 text-align:center;
 padding:20px 0;
 width: 90px;
 background-color: red;
}

#anim_pse:hover:after {
 animation-name: pse_anim;
 animation-duration: 2s;
 animation-fill-mode: forwards;
 animation-timing-function: linear;
 background-color: #0000da;
 content: ' ';
 display: block;
 margin: 0;
 position: absolute;
 top: 25%;
}
</style>

Pozitionati mouse-ul peste patratul rosu.
<div id="anim_pse">Hello Sir</div>
Demo:
Pozitionati mouse-ul peste patratul rosu.
Hello Sir

Proprietatea animation

Pentru cei mai avansati, se pot adauga valorile mai multor sub-proprietati intr-o singura proprietate CSS: animation.
- Exemplu urmator foloseste sase din proprietatile CSS de animatie:
#elm_id {
 animation-name: example;
 animation-duration: 4s;
 animation-timing-function: linear;
 animation-delay: 2s;
 animation-iteration-count: infinite;
 animation-direction: alternate;
}
- Acelasi efect de animatie se poate obtine cu proprietatea animation:
#elm_id {
 animation: example 4s linear 2s infinite alternate;
}
Se pot anima multe proprietati CSS: "background-color, height, margin, opacity, padding, transform, width", si altele.
La MDN e o lista cu Animatable CSS properties.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tip de <input> creaza o paleta de culori pentru selectare culoare?
type="text" type="color" type="date"
<input type="color" name="get_color" />
Care metoda CSS roteste elementul HTML la un anumit numar de grade?
scale() translate() rotate()
#some_id:hover {
  transform: rotate(60deg);
  -ms-transform: rotate(60deg);    /* IE 9 */
  -moz-transform: rotate(60deg);   /* Firefox */
}
Click pe functia care returneaza numarul cel mai mare.
pow() min() max()
var maxn = Math.max(8, 4, 88, 56);
alert(maxn);      // 88
Ce functie previne ca un fisier sa fie inclus mai mult de o data intr-o pagina?
include() include_once() require()
include_once("un_fisier.php");
Care este traducerea corecta pentru: "Ahead of time"?
Peste timp La timp Inainte de vreme
Most people arrived ahead of time.
- Cei mai multi oameni au sosit inainte de vreme (prea devreme).
Indicati traducerea corecta a cuvantului "buenĂ­simo"
mai bun mai putin bun extrem de bun
Este fruto es buenĂ­simo.
- Acest fruct este extrem /nemaipomenit de bun.
Animatie elemente HTML cu CSS

Last accessed pages

  1. Zilele saptamanii - Lunile anului - Anotimpurile - Engleza (24342)
  2. Titluri, Paragrafe, Un nou rand, Linie orizontala (27286)
  3. Adjectivul in limba engleza - The adjective (21747)
  4. Articolul din limba engleza - The article (58159)
  5. Gramatica limbii engleze - Prezentare Generala (193894)

Popular pages this month

  1. Conditional IF in Limba Engleza - Fraze Conditionale (491)
  2. Exercitii engleza - English Tests and exercises - Grammar (454)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (446)
  4. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (423)
  5. Gramatica limbii engleze - Prezentare Generala (321)