Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

  • Home /
  • Blog /
  • CSS /
  • Lupakan Penantian Membosankan: Ciptakan Animasi Loading Menawan dengan CSS3

Lupakan Penantian Membosankan: Ciptakan Animasi Loading Menawan dengan CSS3

 

 

Di era digital yang serba cepat, waktu tunggu saat memuat halaman web atau aplikasi dapat menjadi momen krusial yang menentukan pengalaman pengguna. Alih-alih membiarkan pengguna menatap layar kosong yang membosankan, seorang pengembang web dapat memanfaatkan momen ini untuk menampilkan sesuatu yang menarik dan informatif. Salah satu cara paling efektif dan ringan untuk melakukannya adalah dengan membuat animasi loading atau pemuatan menggunakan CSS3.

CSS3, dengan serangkaian properti animasi dan transformasinya yang kuat, memungkinkan kita untuk membuat berbagai macam animasi pemuatan yang kreatif dan menarik secara visual tanpa perlu bergantung pada JavaScript atau format gambar berat seperti GIF. Mulai dari putaran sederhana hingga bentuk geometris yang kompleks dan efek tiga dimensi, kemungkinannya hampir tak terbatas.

 

Konsep Dasar: @keyframes dan Properti animation

 

Inti dari animasi CSS3 terletak pada dua komponen utama: aturan @keyframes dan properti animation.

  • @keyframes: Aturan ini dapat diibaratkan sebagai sutradara dari animasi Anda. Di sinilah Anda mendefinisikan tahapan-tahapan atau “adegan” dari animasi. Setiap tahapan diwakili oleh persentase (dari 0% hingga 100%) atau dengan kata kunci from (setara dengan 0%) dan to (setara dengan 100%). Di dalam setiap tahapan, Anda menentukan properti CSS yang ingin diubah, seperti warna, ukuran, posisi, atau opasitas.
  • Properti animation: Jika @keyframes adalah sutradaranya, maka properti animation adalah proyektor yang memutar film tersebut pada elemen HTML yang Anda pilih. Properti ini adalah sebuah shorthand atau singkatan yang mencakup beberapa sub-properti untuk mengontrol perilaku animasi, di antaranya:
    • animation-name: Menentukan nama dari aturan @keyframes yang akan digunakan.
    • animation-duration: Mengatur berapa lama satu siklus animasi berlangsung.
    • animation-timing-function: Mengontrol kurva kecepatan animasi (misalnya, linear, ease, ease-in-out).
    • animation-delay: Memberikan jeda sebelum animasi dimulai.
    • animation-iteration-count: Menentukan berapa kali animasi akan diulang (misalnya, infinite untuk pengulangan tanpa henti).
    • animation-direction: Mengatur arah pemutaran animasi (misalnya, normal, reverse, alternate).

 

Mengubah Bentuk dan Posisi dengan transform

 

Untuk menciptakan gerakan dan perubahan bentuk yang dinamis, properti transform menjadi alat yang sangat ampuh. Properti ini memungkinkan Anda untuk memanipulasi elemen dalam ruang 2D dan 3D. Beberapa fungsi transform yang umum digunakan dalam animasi pemuatan meliputi:

  • translate(x, y): Memindahkan elemen secara horizontal (sumbu x) dan vertikal (sumbu y).
  • rotate(derajat): Memutar elemen berdasarkan sudut yang ditentukan.
  • scale(x, y): Mengubah ukuran elemen pada sumbu x dan y.
  • skew(x-deg, y-deg): Memiringkan elemen pada sumbu x dan y.
  • Fungsi 3D: Seperti translate3d(), rotate3d(), dan scale3d() yang menambahkan sumbu z untuk menciptakan efek kedalaman.

 

Contoh Sederhana: Membuat Spinner Klasik

 

Mari kita lihat bagaimana konsep-konsep ini dapat diterapkan untuk membuat animasi pemuatan berupa spinner atau pemutar yang klasik.

HTML:

HTML

<div class="spinner"></div>

CSS:

CSS

.spinner {
  border: 8px solid #f3f3f3; /* Warna dasar lingkaran */
  border-top: 8px solid #3498db; /* Warna bagian yang berputar */
  border-radius: 50%;
  width: 60px;
  height: 60px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

Dalam contoh ini:

  1. Kita membuat sebuah div dengan kelas spinner.
  2. Dengan CSS, kita memberikan bingkai (border) dan membuatnya menjadi lingkaran sempurna menggunakan border-radius: 50%.
  3. Salah satu sisi bingkai (border-top) diberi warna yang berbeda untuk menciptakan efek visual putaran.
  4. Aturan @keyframes bernama spin mendefinisikan animasi putaran 360 derajat.
  5. Properti animation pada kelas .spinner menerapkan animasi spin dengan durasi 1 detik, kecepatan konstan (linear), dan pengulangan tak terbatas (infinite).

 

Ide Kreatif untuk Animasi Loading Anda

 

Dengan menguasai dasar-dasarnya, Anda dapat mulai bereksperimen untuk menciptakan animasi yang lebih unik dan sesuai dengan identitas visual situs Anda.

 

1. Animasi Titik Bergelombang (Pulsating Dots)

 

Animasi ini menciptakan efek titik-titik yang membesar dan mengecil secara bergantian, memberikan kesan dinamis dan hidup.

HTML:

HTML

<div class="loader">
  <div class="dot"></div>
  <div class="dot"></div>
  <div class="dot"></div>
</div>

CSS:

CSS

.loader {
  display: flex;
  justify-content: center;
  align-items: center;
}

.dot {
  width: 15px;
  height: 15px;
  background-color: #7b4397;
  border-radius: 50%;
  margin: 0 5px;
  animation: bounce 1.4s infinite ease-in-out both;
}

.dot:nth-child(2) {
  animation-delay: -0.16s;
}

.dot:nth-child(3) {
  animation-delay: -0.32s;
}

@keyframes bounce {
  0%, 80%, 100% {
    transform: scale(0);
  } 40% {
    transform: scale(1.0);
  }
}

Pada contoh ini, kita menggunakan animation-delay dengan nilai negatif pada titik kedua dan ketiga agar animasi mereka dimulai pada titik yang berbeda dalam siklus, menciptakan efek gelombang yang mulus.

 

2. Efek Balok yang Berubah Bentuk (Shapeshifting Bars)

 

Untuk tampilan yang lebih geometris dan modern, Anda bisa membuat animasi balok yang berubah ketinggiannya secara ritmis.

HTML:

HTML

<div class="loading-bars">
  <div class="bar"></div>
  <div class="bar"></div>
  <div class="bar"></div>
  <div class="bar"></div>
</div>

CSS:

CSS

.loading-bars {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  height: 50px;
}

.bar {
  width: 10px;
  height: 10px;
  margin: 0 4px;
  background-color: #ff4e50;
  animation: stretch 1.2s infinite ease-in-out;
}

.bar:nth-child(2) {
  animation-delay: 0.1s;
}

.bar:nth-child(3) {
  animation-delay: 0.2s;
}

.bar:nth-child(4) {
  animation-delay: 0.3s;
}

@keyframes stretch {
  0%, 40%, 100% {
    transform: scaleY(0.4);
  } 20% {
    transform: scaleY(1.0);
  }
}

Kunci dari animasi ini adalah penggunaan transform: scaleY() untuk mengubah ketinggian setiap balok pada interval waktu yang berbeda.

Dengan kreativitas dan pemahaman yang baik tentang properti animasi dan transformasi CSS3, Anda dapat mengubah waktu tunggu yang pasif menjadi bagian yang menarik dari pengalaman pengguna di situs web Anda.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_sx3ztpsx3ztpsx3z
Gemini_Generated_Image_gt39hhgt39hhgt39
Gemini_Generated_Image_89vhai89vhai89vh
Gemini_Generated_Image_3w02qq3w02qq3w02

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek