Tabs Interaktif
Konten berganti-ganti lewat tab seperti di halaman produk e-commerce.
Apa Itu Tabs?
Tabs adalah pola "satu tempat, banyak isi": barisan tombol di atas, panel konten di bawah. Klik tombol A tampil konten A, tombol B tampil konten B. Kamu melihatnya di halaman produk (Deskripsi / Spesifikasi / Ulasan) dan di pengaturan aplikasi.
Langkah Membangun
HTML: Dua bagian sejajar: <div class="tab-tombol"> berisi tombol-tombol (masing-masing punya data-tab="id-panel"), dan <div class="tab-panel"> berisi panel-panel konten dengan id yang cocok.
CSS: Tombol tab aktif punya gaya berbeda (background ungu, teks putih). Panel disembunyikan dengan display: none, panel aktif ditampilkan (display: block) dengan animasi fade.
JS: Polanya sama seperti menu aktif di navbar, tapi dua kelompok:
- Hapus class
aktifdari semua tombol dan panel. - Tambahkan
aktifke tombol yang diklik dan panel yang id-nya cocok dengandataset.tab.
Atribut data-* adalah cara resmi HTML menyimpan data kustom. data-tab="deskripsi" dibaca di JS sebagai tombol.dataset.tab.
Kesalahan Umum
- Id panel tidak cocok dengan data-tab sehingga klik tidak menampilkan apa-apa (cek ejaan).
- Semua panel terlihat saat halaman dimuat (pastikan hanya panel pertama yang punya class aktif di HTML awal).
- Tombol tab memakai
<a href="#">sehingga halaman meloncat (pakai<button type="button">).
export default function App(): JSX.Element { return <h1>Hello world</h1> }
Tantangan
Tantangan: Tab dengan URL Hash
Buat tab bisa dibagikan lewat link: saat tab diklik, ubah URL hash (misal #spesifikasi), dan saat halaman dibuka dengan hash tersebut, tab yang sesuai langsung aktif.