Transisi Dan Animasi CSS

Transisi dan animasi adalah fitur penting dalam CSS yang memungkinkan kita untuk membuat efek visual yang lebih menarik dan interaktif. Mari kita bahas dasar-dasar tentang transisi, animasi, serta transformasi 2D dan 3D.

### 1. **Transisi**

Transisi memungkinkan perubahan dari satu gaya ke gaya lainnya secara halus dalam waktu tertentu. Ini biasanya digunakan saat elemen di-hover atau saat perubahan status terjadi.

**Contoh Transisi Sederhana:**

```css
.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  transition: background-color 0.5s ease, transform 0.5s ease; /* Transisi selama 0.5 detik */
}

.box:hover {
  background-color: red; /* Warna berubah saat hover */
  transform: scale(1.1); /* Zoom sedikit saat hover */
}
```

**HTML:**
```html
<div class="box"></div>
```

### 2. **Animasi Dasar**

Animasi memungkinkan kita untuk mendefinisikan gaya yang berubah dari satu keadaan ke keadaan lain dengan menggunakan keyframes. Kita dapat mengontrol berbagai aspek seperti durasi, timing function, dan iterasi.

**Contoh Animasi Dasar:**

```css
@keyframes myAnimation {
  0% {
    transform: translateY(0); /* Posisi awal */
  }
  50% {
    transform: translateY(-30px); /* Naik 30px */
  }
  100% {
    transform: translateY(0); /* Kembali ke posisi awal */
  }
}

.animated-box {
  width: 100px;
  height: 100px;
  background-color: green;
  animation: myAnimation 1s infinite; /* Menjalankan animasi selama 1 detik, berulang terus */
}
```

**HTML:**
```html
<div class="animated-box"></div>
```

### 3. **Transformasi 2D dan 3D**

Transformasi digunakan untuk mengubah posisi, ukuran, dan bentuk elemen. Transformasi 2D termasuk pergeseran, rotasi, skala, dan kemiringan, sedangkan transformasi 3D memungkinkan kita untuk memanipulasi elemen dalam ruang tiga dimensi.

**Contoh Transformasi 2D:**

```css
.transform-box {
  width: 100px;
  height: 100px;
  background-color: orange;
  transition: transform 0.3s ease; /* Transisi transformasi */
}

.transform-box:hover {
  transform: rotate(45deg) scale(1.2); /* Rotasi dan skala saat hover */
}
```

**Contoh Transformasi 3D:**

```css
.perspective-container {
  perspective: 1000px; /* Menentukan perspektif 3D */
}

.perspective-box {
  width: 100px;
  height: 100px;
  background-color: purple;
  transform-style: preserve-3d; /* Mengaktifkan 3D untuk anak */
  transition: transform 0.5s ease; /* Transisi */
}

.perspective-box:hover {
  transform: rotateY(180deg); /* Rotasi pada sumbu Y saat hover */
}
```

**HTML:**
```html
<div class="perspective-container">
  <div class="perspective-box"></div>
</div>
```

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak