Mga Katangian ng CSS na Kaugnay sa Animasyon
Ipinaliliwanag ng artikulong ito ang mga katangian ng CSS na kaugnay sa animasyon.
Matututunan mo ang paggamit at syntax ng mga katangiang @keyframes
, animation
, at transition
.
YouTube Video
HTML para sa Preview
css-animation.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-animation.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Animation</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Animation Related Properties</h2>
20 </header>
21 <article>
22 <h3>@keyframes</h3>
23 <section>
24 <h4>Animation Examples</h4>
25 <header><h4>animation: slide 3s ease infinite</h4></header>
26 <section class="sample-view">
27 <div class="box-animation-slide">Slide Box</div>
28 </section>
29 <header><h4>animation: color-change 3s ease infinite</h4></header>
30 <section class="sample-view">
31 <div class="box-animation-color-change">Color Change Box</div>
32 </section>
33 <header><h4>animation: fade 3s ease infinite</h4></header>
34 <section class="sample-view">
35 <div class="box-animation-fade">Fade Box</div>
36 </section>
37 </section>
38 </article>
39 <article>
40 <h3>animation</h3>
41 <section>
42 <h4>Animation Examples</h4>
43 <header><h4>animation: slide 3s ease-in-out infinite</h4></header>
44 <section class="sample-view">
45 <div class="box-animation-ease-in-out">Slide Box</div>
46 </section>
47 <header><h4>animation: color-change 3s ease-in-out 1s 3 alternate</h4></header>
48 <section class="sample-view">
49 <div class="box-animation-alternate">Color Change Box</div>
50 </section>
51 </section>
52 </article>
53 <article>
54 <h3>transition</h3>
55 <section>
56 <h4>Transition Examples</h4>
57 <header><h4>transition: background-color 2s ease</h4></header>
58 <section class="sample-view">
59 <div class="transition-box">Hover me!</div>
60 </section>
61 <header><h4>transition: background-color 5s ease, width 0.5s ease-in</h4></header>
62 <section class="sample-view">
63 <div class="transition-2-properties">Hover me!</div>
64 </section>
65 </section>
66 </article>
67 </main>
68</body>
69</html>
Animasyon at Transisyon
Batas na @keyframes
1/* Animation definition */
2@keyframes slide {
3 0% {
4 transform: translateX(0);
5 }
6 50% {
7 transform: translateX(200px);
8 }
9 100% {
10 transform: translateX(0);
11 }
12}
13
14/* Apply the animation */
15.box-animation-slide {
16 width: 100px;
17 height: 100px;
18 background-color: skyblue;
19 animation: slide 3s ease infinite;
20}
Ang @keyframes
ay ginagamit sa mga CSS animations upang tukuyin kung paano nagbabago ang mga estilo habang nagaganap ang animasyon. Sa @keyframes
, ang pagbabago ng estilo mula sa simula hanggang sa dulo ng animasyon ay tinutukoy gamit ang mga porsyento ng oras o mga keyword (from
at to
).
- Ito ay isang halimbawa ng animasyon kung saan gumagalaw ang isang elemento mula kaliwa patungong kanan at bumabalik sa orihinal nitong posisyon.
- Sa halimbawang ito, ang
slide
ay isinusulat pagkatapos ng@keyframes
, na nagpapakilala ng animasyon na tinatawag naslide
. - Ang
0%
ay ang simula ng animasyon, kung saan angtranslateX(0)
ay naglalagay ng elemento sa orihinal nitong lokasyon. - Ang
50%
ay nasa gitna ng animasyon, kung saan gumagalaw ang elemento ng 200px sa kanan gamit angtranslateX(200px)
. - Ang
100%
ay ang pagtatapos ng animasyon, kung saan bumabalik ang elemento sa orihinal nitong posisyon. - Sa klase ng
box-animation-slide
, ang katangianganimation
ay ginagamit upang i-apply ang animasyongslide
sa pagitan ng 3 segundong agwat.
1@keyframes color-change {
2 0% {
3 background-color: red;
4 }
5 25% {
6 background-color: blue;
7 }
8 50% {
9 background-color: green;
10 }
11 75% {
12 background-color: yellow;
13 }
14 100% {
15 background-color: red;
16 }
17}
18
19.box-animation-color-change {
20 width: 100px;
21 height: 100px;
22 background-color: skyblue;
23 animation: color-change 3s ease infinite;
24}
- Maaari mong mahusay na kontrolin ang mga estilo habang nagaganap ang animasyon. Sa pamamagitan ng pagtukoy sa porsyento, maaari mong i-apply ang iba't ibang estilo sa alinmang oras.
- Sa halimbawang ito, ang kulay ay unting-unting nagbabago mula pula patungong asul, berde, dilaw, at bumabalik sa pula.
1@keyframes fade {
2 from {
3 opacity: 0;
4 }
5 to {
6 opacity: 1;
7 }
8}
9
10.box-animation-fade {
11 width: 100px;
12 height: 100px;
13 background-color: blue;
14 animation: fade 3s ease infinite;
15}
- Sa halimbawang ito, ang
from
ay katumbas ng0%
at angto
ay katumbas ng100%
. Pinapayagan ka nitong magtakda ng mga simpleng animasyon.
Pangunahing Syntax
1@keyframes animation-name {
2 0% {
3 /* Style at the start */
4 }
5 50% {
6 /* Style at the midpoint */
7 }
8 100% {
9 /* Style at the end */
10 }
11}
animation-name
: Ang pangalan ng animasyon. Ito ay tinutukoy gamit anganimation
na property o anganimation-name
na property.- Mga Porsyento o Keyword: Gumamit ng mga porsyento mula
0%
hanggang100%
, o ang mga keyword nafrom
(katumbas ng0%
) atto
(katumbas ng100%
).
Katangiang animation
1.box-animation-ease-in-out {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: slide 3s ease-in-out infinite;
6}
Ang animation
na katangian ay ginagamit upang magdagdag ng mga animasyon sa isang elemento. Ang mga animasyon ay nagtatakda kung paano nagbabago ang isang hanay ng mga estilo ng CSS sa paglipas ng panahon. Sa pamamagitan ng animation
na katangian, maaari mong kontrolin ang oras, kilos, pagkaantala, bilang ng mga pag-uulit, at iba pa ng isang animasyon.
- Ang klase na
box-animation-ease-in-out
ay tumutukoy saslide
bilanganimation-name
, at ginagamit angslide
na animasyon na nakatukoy sa@keyframes
.- Ang
3s
ay anganimation-duration
, na nangangahulugang ang bawat siklo ng animasyon ay natatapos sa loob ng 3 segundo. - Ang
ease-in-out
ay anganimation-timing-function
, na nagdudulot sa animasyon na magsimula nang mabagal, bumilis, at muling bumagal sa dulo. - Ang
infinite
ay anganimation-iteration-count
, na nangangahulugang ang animasyon ay paulit-ulit maglaro nang walang hanggan.
- Ang
1.box-animation-alternate {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: color-change 3s ease-in-out 1s 3 alternate;
6}
- Ang klase na
box-animation-alternate
ay tumutukoy sacolor-change
bilanganimation-name
, at ginagamit angcolor-change
na animasyon na nakatukoy sa@keyframes
.- Ang
1s
pagkatapos ngease-in-out
ay anganimation-delay
, na tumutukoy sa pagkaantala bago magsimula ang animasyon. Ang animasyon ay magsisimula 1 segundo pagkaraan. - Ang
3
pagkatapos ng1s
ay anganimation-iteration-count
, na nangangahulugang inuulit ang animasyon ng 3 beses. - Ang
alternate
ay anganimation-direction
, na tumutukoy sa direksyon ng pag-playback ng animasyon. Angalternate
ay tumutukoy na ang animasyon ay maglaro nang salitan.
- Ang
Komposisyon ng animation
na Katangian
Ang animation
na katangian ay isang pinaikling katangian na pinagsasama-sama ang ilang mga sub-katangian sa isa. Narito ang mga pangunahing sub-katangian:.
- Katangiang
animation-name
: Tinutukoy ang pangalan ng animasyong ilalapat. Dapat itong tumugma sa pangalan ng animasyon na nakatukoy sa@keyframes
. - Katangiang
animation-duration
: Itinatakda ang tagal ng oras para matapos ang isang siklo ng animasyon. Ang mga yunit ng oras ay segundo (s
) o millisecond (ms
). - Katangiang
animation-timing-function
: Nagtatakda ng curve ng bilis ng animasyon. Ginagamit ang mga halaga tulad ngease
,linear
,ease-in
,ease-out
,ease-in-out
, at iba pa.- Ang pagtatakda ng
ease
ay nagpapasimula sa animasyon nang mabagal, bumibilis, at muling bumagal sa dulo. - Ang pagtatakda ng
linear
ay nagpapanatili na magprogreso ang animasyon sa pare-parehong bilis mula umpisa hanggang wakas. - Ang pagtukoy ng
ease-in
ay nagpapasimula ng animation nang dahan-dahan at tinatapos ito nang mabilis. - Ang pagtukoy ng
ease-out
ay nagpapasimula ng animation nang mabilis at tinatapos ito nang dahan-dahan. - Ang pagtukoy ng
ease-in-out
ay nagpapasimula nang dahan-dahan, bumibilis, at tinatapos nang dahan-dahan.
- Ang pagtatakda ng
- Ang property na
animation-delay
ay tumutukoy sa pagkaantala bago magsimula ang animation. Ang yunit ng oras ay maaaring segundo o millisecond. - Ang property na
animation-iteration-count
ay tumutukoy sa dami ng beses na dapat ulitin ang animation. Ang pagtukoy nginfinite
ay mag-uulit ng animation nang walang katapusan. - Ang property na
animation-direction
ay tumutukoy sa direksiyon ng playback ng animation. Kasama sa mga opsiyon angnormal
(pasulong na direksiyon),reverse
(pabalik na direksiyon),alternate
(magpalit-palit), atalternate-reverse
(magpalit-palit na nagsisimula sa pabalik). - Ang property na
animation-fill-mode
ay tumutukoy sa estado ng animation bago ito magsimula at pagkatapos ito magtapos. Maaari mong tukuyin ang alinman sanone
,forwards
,backwards
, oboth
. - Ang property na
animation-play-state
ay tumutukoy kung ang animation ay nagpapatakbo o nakapahinto. Maaari mong itukoy kungrunning
opaused
.
Buod
Ang property na animation
ay isang makapangyarihang tool para dinamikong baguhin ang estilo ng mga elemento. Sa paggamit ng @keyframes
, maaari mong tukuyin kung paano nagbabago ang mga estilo sa paglipas ng panahon at kontrolin ang detalyadong asal ng animation gamit ang bawat sub-property ng animation
.
Property na transition
1.transition-box {
2 background-color: lightgray;
3 transition: background-color 2s ease;
4}
5
6.transition-box:hover {
7 background-color: steelblue;
8}
9
10.transition-2-properties {
11 background-color: lightgray;
12 width: 150px;
13 height: 50px;
14 transition: background-color 5s ease, width 0.5s ease-in;
15}
16
17.transition-2-properties:hover {
18 background-color: blue;
19 width: 250px;
20}
Ang property na transition
ay ginagamit upang maglapat ng animation effects sa mga pagbabago sa CSS style. Pinapayagan nitong maging makinis ang mga pagbabago sa panahon ng pagbago ng estado tulad ng hover
, focus
, active
, o kapag ang mga estilo ay dinamikong binago gamit ang JavaScript.
Tingnan natin ang isang halimbawa ng class na transition-box
kung saan nagbabago nang maayos ang kulay ng background kapag hinover ang isang button.
- Sa class na transition-box
, ang property na transition
ay naglalapat ng 2-segundong transition sa pagbabago ng kulay ng background. Ang pagbabago ay tinukoy bilang ease
, na nagpapaganda ng pagiging makinis nito.
- Binabago ng pseudo-class na hover
ang kulay ng background mula lightgray
patungo sa steelblue
kapag hinhover ng mouse ang button. Ang pagbabagong ito ay nangyayari nang maayos sa loob ng 2 segundo na tinukoy sa class na transition-box
.
Posibleng maglapat ng transition
sa maraming property nang sabay-sabay.
- Sa halimbawa ng class na transition-2-properties
, nagbabago ang kulay ng background sa loob ng 5 segundo at nagbabago ang lapad sa loob ng 0.5 segundo.
Pangunahing Syntax
1/* Basic syntax of transition */
2transition: property duration timing-function delay;
- Tinutukoy ng
property
kung aling mga CSS properties ang dapat lagyan ng animation. Ang pagtatakda ngall
ay maglalapat ng animation sa lahat ng properties. - Tinutukoy ng
duration
ang oras na kailangan para matapos ang animation. Tukuyin gamit ang segundo (s
) o millisecond (ms
). - Tinutukoy ng
timing-function
ang pagbabago sa bilis ng animation. Maaaring gumamit ng mga opsyon tulad ngease
,linear
,ease-in
,ease-out
,ease-in-out
, atbp. - Tinutukoy ng
delay
ang oras ng pagkaantala bago magsimula ang animation. Tukuyin sa segundo o millisecond.
Mga detalyadong properties ng transition
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;
Maaaring gamitin ang transition
bilang magkakahiwalay na properties tulad ng sumusunod.
transition-property
: Tinutukoy ang property kung saan ilalapat ang animation.transition-duration
: Tinutukoy ang tagal hanggang matapos ang animation.transition-timing-function
: Tinutukoy ang bilis ng progreso ng animation. Maaaring gamitin ang mga opsyon tulad ngease
,linear
,ease-in
,ease-out
,ease-in-out
.transition-delay
: Tinutukoy ang oras ng pagkaantala bago magsimula ang animation.
Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.