javascript manipulasi css | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: javascript manipulasi css

Saturday, April 18, 2026

javascript manipulasi css

🎨
JavaScript CSS Manipulation Animasi Web Artikel ke-9

Manipulasi CSS dengan JavaScript:
Animasi & Tampilan Dinamis
Tanpa Plugin

Ubah tampilan web kamu secara real-time — tanpa jQuery, tanpa plugin, hanya dengan JavaScript murni yang elegan.

9 menit
Estimasi Baca
Pemula
Level
Artikel 9/14
Seri JS

Pernah nggak, kamu mampir ke website tertentu dan langsung terkesima — tombolnya bergerak halus, warna berubah saat di-klik, konten muncul dengan animasi yang mulus? Kamu mungkin pikir, "pasti ada plugin canggih di balik ini." Ternyata, banyak efek memukau itu dibuat dengan satu senjata sederhana: manipulasi CSS dengan JavaScript. Ya, manipulasi CSS JavaScript animasi web adalah skill yang lebih powerful dari yang kamu bayangkan — dan artikel ini akan mengajarkan kamu dari nol, tanpa instalasi plugin apapun.

Kalau kamu sudah mengikuti Seri Belajar Javascript from Zero to Zorro dan sudah paham DOM di artikel ke-6 serta event di artikel ke-7, sekarang saatnya kamu naik level: kendalikan tampilan visual halaman web secara dinamis lewat JavaScript. Siap? Mari mulai.

📐 Konsep Inti

Manipulasi CSS dengan JavaScript adalah teknik mengubah style (gaya tampilan) elemen HTML secara langsung menggunakan kode JavaScript — baik lewat properti style, menambah/hapus class, maupun menggunakan CSS Custom Properties — tanpa perlu me-reload halaman atau menggunakan library eksternal.

🎛️ Tiga Cara JavaScript Mengontrol Tampilan CSS

Bayangkan CSS itu seperti lemari baju. JavaScript bisa mengubah pakaian yang dipakai elemen HTML kamu dengan tiga cara berbeda. Ketiganya punya kelebihan masing-masing.

Metode Cara Kerja Kapan Dipakai Contoh
style property Ubah style langsung Perubahan 1-2 properti el.style.color
classList Tambah/hapus class CSS Perubahan komplek / animasi el.classList.toggle()
CSS Variables Ubah variabel CSS global Tema / perubahan massal setProperty()
💡 Tips

Gunakan classList sebagai senjata utamamu. Kenapa? Karena semua efek visualnya sudah kamu definisikan di CSS, jadi lebih rapi dan mudah di-maintain. JavaScript cukup bilang "pakai class ini" atau "lepas class itu".

Cara 1 — Langsung Ubah Style dengan element.style

1

Pertama, ambil elemen HTML menggunakan getElementById atau querySelector seperti yang kamu pelajari di Artikel 6.

2

Akses properti .style lalu tentukan properti CSS-nya. Perhatian: nama properti CSS yang punya tanda hubung (seperti background-color) diubah jadi camelCase di JavaScript (backgroundColor).

3

Tetapkan nilainya sebagai string — persis seperti kamu menulis nilai CSS biasa.

JavaScript
// Ambil elemen tombol
const tombol = document.querySelector('#tombolku');

// Langsung ubah style saat diklik
tombol.addEventListener('click', function() {
  tombol.style.backgroundColor = '#6366f1';
  tombol.style.color            = 'white';
  tombol.style.transform        = 'scale(1.1)';
  tombol.style.transition       = 'all 0.3s ease';
});

🔄 classList — Cara Pro untuk Manipulasi CSS JavaScript Animasi Web

Kalau style itu seperti kamu langsung mengganti satu pakaian, maka classList itu seperti kamu punya lemari yang sudah diatur outfit-nya — kamu tinggal bilang "pakai outfit A" atau "ganti ke outfit B". Jauh lebih rapi!

⚡ Insight Penting

classList.toggle() adalah fungsi paling magis di sini. Satu baris kode ini bisa menambahkan class jika belum ada dan menghapusnya jika sudah ada. Cocok banget buat dark mode, menu hamburger, dan accordion.

Berikut empat method classList yang wajib kamu kuasai:

1

add('nama-class') — menambahkan class baru ke elemen.

2

remove('nama-class') — menghapus class dari elemen.

3

toggle('nama-class') — tambah jika belum ada, hapus jika sudah ada.

4

contains('nama-class') — mengecek apakah class ada (return true/false).

Contoh Praktis — Dark Mode Toggle
<!-- HTML -->
<button id="toggleMode">🌙 Dark Mode</button>
<div id="halaman">Konten website...</div>

/* CSS */
.dark-mode {
  background-color: #0f0f1a;
  color: #f8fafc;
}

// JavaScript
const tombol  = document.getElementById('toggleMode');
const halaman = document.getElementById('halaman');

tombol.addEventListener('click', () => {
  halaman.classList.toggle('dark-mode');
  
  // Ganti teks tombol sesuai mode aktif
  const isDark = halaman.classList.contains('dark-mode');
  tombol.textContent = isDark ? '☀️ Light Mode' : '🌙 Dark Mode';
});
🔥 Fakta Menarik

Sekitar 85% animasi web modern dibangun dengan kombinasi CSS transition / animation + classList.toggle() JavaScript. Library besar seperti Tailwind dan Bootstrap pun menggunakan pola yang sama di baliknya!

✨ Membuat Animasi Web dengan CSS Variables & JavaScript

Bayangkan CSS Variables (Custom Properties) seperti remote control universal untuk tampilanmu. Kamu definisikan "saluran-saluran" di CSS, lalu JavaScript tinggal memutar knop dari jarak jauh — dan seluruh tampilan ikut berubah serentak. Ini adalah teknik paling elegan untuk animasi web manipulasi CSS JavaScript yang melibatkan banyak elemen sekaligus, seperti pergantian tema warna.

🔬 Perbandingan: Tanpa vs. Dengan CSS Variables
❌ Cara Ribet (tanpa CSS Var)

Harus ubah warna satu per satu di setiap elemen. 10 elemen = 10 baris kode JavaScript. Sangat tidak efisien dan susah di-maintain.

✅ Cara Elegan (dengan CSS Var)

Ubah satu variabel di root, semua elemen yang menggunakannya ikut berubah otomatis. 10 elemen = tetap 1 baris kode JavaScript!

Ganti Tema Warna dengan CSS Variables
/* CSS — definisikan variabel di :root */
:root {
  --warna-utama: #6366f1;
  --warna-bg:    #ffffff;
  --warna-teks:  #1e293b;
}
.kotak {
  background-color: var(--warna-bg);
  color:            var(--warna-teks);
  border:           2px solid var(--warna-utama);
}

// JavaScript — ubah variabel, semua elemen ikut berubah!
const root = document.documentElement;

function gantiTemaMalam() {
  root.style.setProperty('--warna-utama', '#a5b4fc');
  root.style.setProperty('--warna-bg',    '#0f0f1a');
  root.style.setProperty('--warna-teks',  '#f8fafc');
}

🚀 Proyek Mini: Kartu Animasi Interaktif

Sekarang gabungkan semua yang sudah kamu pelajari. Kita buat kartu produk yang animasinya mulus saat di-hover dan di-klik — 100% tanpa plugin. Ini contoh nyata animasi web manipulasi CSS JavaScript yang langsung bisa kamu pakai.

1

Buat HTML dengan struktur kartu sederhana dan tambahkan class kartu ke setiap elemen kartu.

2

Definisikan animasi di CSS menggunakan transition dan class .aktif.

3

Gunakan querySelectorAll untuk ambil semua kartu dan pasang event listener di masing-masing.

4

Toggle class .aktif saat kartu diklik. Satu baris JavaScript, animasi penuh berjalan!

Kartu Animasi Interaktif — Full Code
<!-- HTML -->
<div class="kartu">
  <h3>🎨 Desain Kreatif</h3>
  <p>Klik kartu ini!</p>
</div>

/* CSS */
.kartu {
  padding:          20px;
  border-radius:    12px;
  background:       #f8fafc;
  box-shadow:       0 4px 20px rgba(0,0,0,0.08);
  cursor:           pointer;
  transition:       transform 0.3s ease, box-shadow 0.3s ease,
                    background-color 0.3s ease;
}
.kartu.aktif {
  transform:        translateY(-8px) scale(1.02);
  box-shadow:       0 16px 40px rgba(99,102,241,0.25);
  background-color: #6366f1;
  color:            #fff;
}

// JavaScript
const semuaKartu = document.querySelectorAll('.kartu');

semuaKartu.forEach(kartu => {
  kartu.addEventListener('click', () => {
    kartu.classList.toggle('aktif');
  });
});
⚠️ Perhatian

Jangan terlalu banyak menggunakan element.style langsung (inline style) karena akan mempersulit debugging dan override CSS di masa mendatang. Selalu utamakan pendekatan class-based untuk proyek yang skalanya besar.

⚙️ Teknik Lanjutan: setInterval & requestAnimationFrame

Selain toggle class, kamu juga bisa membuat animasi yang berjalan otomatis menggunakan setInterval atau versi yang lebih smooth: requestAnimationFrame. Ini berguna untuk progress bar, loading animasi, atau efek typewriter.

Animasi Progress Bar Otomatis
const bar   = document.getElementById('progressBar');
let progres = 0;

function animasiBar() {
  if (progres <= 100) {
    bar.style.width = progres + '%';
    progres += 1;
    requestAnimationFrame(animasiBar); // lebih halus dari setInterval
  }
}

animasiBar(); // mulai animasi
💡 Tips Pro

Gunakan requestAnimationFrame daripada setInterval untuk animasi JavaScript. Kenapa? Karena browser akan menyinkronkan animasi dengan refresh rate layar (biasanya 60fps), hasilnya lebih smooth dan lebih hemat baterai perangkat mobile.

🎯 Kesimpulan

Di artikel ini, kamu sudah mempelajari tiga pilar utama manipulasi CSS JavaScript animasi web:

element.style — untuk perubahan style cepat dan dinamis pada satu properti tertentu.

classList — cara terbaik untuk mengelola animasi dan perubahan tampilan yang kompleks secara bersih.

CSS Variables — senjata rahasia untuk mengubah tema seluruh halaman dengan satu perintah JavaScript.

Dengan skill ini, kamu sudah bisa membuat website yang hidup, responsif, dan memukau — tanpa satu pun plugin tambahan. Keren, kan?

📚 Lihat Semua Artikel Seri JS 💬 Tulis komentar di bawah!
Tag: #javascript #CSS #animasi-web #classList #tutorial #pemula
📚 Seri Lengkap: Javascript from Zero to Zorro

Artikel ini adalah bagian dari 14 artikel yang akan membawamu dari nol hingga mahir JavaScript. Klik di bawah untuk melihat daftar isi lengkapnya.

🗂️ Lihat Daftar Isi 14 Artikel →
🛠️ Belum Belajar HTML & CSS?

Pelajari fondasi dulu sebelum terjun lebih jauh ke JavaScript. Dua seri ini wajib kamu kuasai:

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux