Sifat-sifat CSS Berkaitan dengan Animasi
Artikel ini menerangkan sifat-sifat CSS yang berkaitan dengan animasi.
Anda boleh mempelajari penggunaan dan sintaks untuk sifat-sifat @keyframes
, animation
, dan transition
.
YouTube Video
HTML untuk Pratonton
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>
Animasi & Transisi
Peraturan @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}
@keyframes
digunakan dalam animasi CSS untuk menentukan bagaimana gaya berubah semasa animasi. Dalam @keyframes
, perubahan gaya dari permulaan hingga akhir animasi ditentukan oleh peratusan masa atau kata kunci (from
dan to
).
- Ini adalah contoh animasi di mana elemen meluncur dari kiri ke kanan dan kembali ke kedudukan asalnya.
- Dalam contoh ini,
slide
ditulis selepas@keyframes
, mentakrifkan animasi bernamaslide
. 0%
adalah permulaan animasi, dengantranslateX(0)
meletakkan elemen di lokasi asalnya.50%
adalah pertengahan animasi, di mana elemen bergerak 200px ke kanan menggunakantranslateX(200px)
.100%
adalah penghujung animasi, dengan elemen kembali ke kedudukan asalnya.- Dalam kelas
box-animation-slide
, sifatanimation
digunakan untuk menerapkan animasislide
pada selang masa 3 saat.
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}
- Anda boleh mengawal gaya secara terperinci semasa animasi. Dengan menentukan peratusan, anda boleh menerapkan gaya yang berbeza pada masa tertentu.
- Dalam contoh ini, warna berubah sedikit demi sedikit dari merah ke biru ke hijau ke kuning dan kembali ke merah.
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}
- Dalam contoh ini,
from
adalah bersamaan dengan0%
danto
adalah bersamaan dengan100%
. Ini membolehkan anda mendefinisikan animasi yang mudah.
Sintaks Asas
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
: Nama animasi. Ini dinyatakan dengan menggunakan atributanimation
atau atributanimation-name
.- Peratusan atau Kata Kunci: Gunakan peratusan dari
0%
hingga100%
, atau kata kuncifrom
(bersamaan dengan0%
) danto
(bersamaan dengan100%
).
Sifat 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}
Sifat animation
digunakan untuk menerapkan animasi kepada elemen. Animasi menentukan bagaimana sekumpulan gaya CSS berubah mengikut masa. Dengan sifat animation
, anda boleh mengawal masa, tingkah laku, kelewatan, bilangan ulangan, dan banyak lagi mengenai animasi.
- Kelas
box-animation-ease-in-out
menetapkanslide
sebagaianimation-name
, dan menggunakan animasislide
yang ditentukan dalam@keyframes
.3s
adalahanimation-duration
, bermakna setiap kitaran animasi selesai dalam masa 3 saat.ease-in-out
adalahanimation-timing-function
, yang menyebabkan animasi bermula perlahan, mempercepat, dan kemudian perlahan semula di akhir.infinite
adalahanimation-iteration-count
, bermaksud animasi akan berulang tanpa henti.
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}
- Kelas
box-animation-alternate
menetapkancolor-change
sebagaianimation-name
, dan menggunakan animasicolor-change
yang ditentukan dalam@keyframes
.1s
selepasease-in-out
adalahanimation-delay
, menentukan kelewatan sebelum animasi bermula. Animasi akan bermula 1 saat kemudian.3
selepas1s
adalahanimation-iteration-count
, bermaksud animasi diulang 3 kali.alternate
adalahanimation-direction
, menetapkan arah pemutaran animasi.alternate
menentukan bahawa animasi dimainkan secara berselang-seli.
Komposisi Sifat animation
Sifat animation
adalah sifat ringkasan yang menggabungkan beberapa sub-sifat menjadi satu. Berikut adalah sub-sifat utama:.
- Sifat
animation-name
: Menetapkan nama animasi yang akan digunakan. Ia mesti sepadan dengan nama animasi yang ditentukan dalam@keyframes
. - Sifat
animation-duration
: Menetapkan masa yang diperlukan untuk animasi melengkapkan satu kitaran. Unit masa adalah dalam saat (s
) atau milisaat (ms
). - Sifat
animation-timing-function
: Menentukan lengkung kelajuan animasi. Nilai sepertiease
,linear
,ease-in
,ease-out
,ease-in-out
, dan lain-lain digunakan.- Menentukan
ease
menyebabkan animasi bermula perlahan, mempercepat, dan kemudian perlahan semula di akhir. - Menentukan
linear
menyebabkan animasi bergerak pada kelajuan tetap dari mula hingga akhir. - Menentukan
ease-in
memulakan animasi dengan perlahan dan mengakhiri dengan cepat. - Menentukan
ease-out
memulakan animasi dengan cepat dan mengakhiri dengan perlahan. - Menentukan
ease-in-out
memulakan perlahan, bergerak dengan cepat, dan mengakhiri dengan perlahan.
- Menentukan
- Harta
animation-delay
menetapkan kelewatan sebelum animasi bermula. Unit masa adalah sama ada dalam saat atau milisaat. - Harta
animation-iteration-count
menetapkan jumlah kali animasi harus diulang. Menentukaninfinite
akan mengulang animasi tanpa had. - Harta
animation-direction
menetapkan arah main semula animasi. Pilihan termasuknormal
(arah ke depan),reverse
(arah ke belakang),alternate
(main secara bergilir-gilir), danalternate-reverse
(main bergilir-gilir bermula ke belakang). - Harta
animation-fill-mode
menetapkan keadaan animasi sebelum ia bermula dan selepas ia berakhir. Anda boleh menentukan mana-mana daripadanone
,forwards
,backwards
, atauboth
. - Harta
animation-play-state
menetapkan sama ada animasi sedang berjalan atau dijeda. Anda boleh menentukanrunning
ataupaused
.
Ringkasan
Harta animation
adalah alat yang berkuasa untuk mengubah gaya elemen secara dinamik. Dengan menggunakan @keyframes
, anda boleh menentukan bagaimana gaya berubah dari masa ke masa dan mengawal tingkah laku terperinci animasi dengan setiap sub-harta animation
.
Harta 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}
Harta transition
digunakan untuk menerapkan kesan animasi pada perubahan gaya CSS. Ia membolehkan perubahan kelihatan lancar semasa perubahan keadaan seperti hover
, focus
, active
, atau apabila gaya diubah secara dinamik oleh JavaScript.
Mari kita lihat contoh kelas transition-box
di mana warna latar belakang berubah dengan lancar apabila kursor diarahkan ke butang.
- Dalam kelas transition-box
, harta transition
menerapkan peralihan selama 2 saat untuk perubahan warna latar belakang. Perubahan ditentukan sebagai ease
, menjadikannya lancar.
- Pseudo-class hover
mengubah warna latar belakang daripada lightgray
kepada steelblue
apabila tetikus diarahkan ke butang. Perubahan ini berlaku dengan lancar selama 2 saat seperti yang ditentukan dalam kelas transition-box
.
Adalah mungkin untuk menerapkan transition
kepada pelbagai harta secara serentak.
- Dalam contoh kelas transition-2-properties
, warna latar belakang berubah dalam 5 saat dan lebar berubah dalam 0.5 saat.
Sintaks Asas
1/* Basic syntax of transition */
2transition: property duration timing-function delay;
property
menentukan properti CSS mana yang seharusnya diterapkan pada animasi. Menetapkanall
akan menerapkan animasi pada semua properti.duration
menentukan jangka waktu yang diperlukan untuk menyelesaikan animasi. Nyatakan menggunakan saat (s
) atau milisaat (ms
).timing-function
menentukan perubahan kelajuan animasi. Anda boleh menggunakan pilihan sepertiease
,linear
,ease-in
,ease-out
,ease-in-out
, dan sebagainya.delay
menentukan waktu tunda sebelum animasi dimulai. Nyatakan dalam saat atau milisaat.
Properti terperinci dari transition
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;
transition
juga dapat digunakan sebagai properti individu seperti berikut.
transition-property
: Menentukan properti yang diterapkan untuk animasi.transition-duration
: Menentukan jangka waktu hingga animasi selesai.transition-timing-function
: Menentukan kelajuan perkembangan animasi. Pilihan sepertiease
,linear
,ease-in
,ease-out
,ease-in-out
dapat digunakan.transition-delay
: Menentukan waktu tunda sebelum animasi dimulai.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.