Install Web App

Implementasi Kegunaan Accordion JavaScript: Meningkatkan Interaktivitas dan Pengalaman Pengguna pada Website

profil-penulis

Nuzul Karomah

18 Maret 2024

1. Code HTML

<div class="container">
  <h2>Frequently Asked Questions</h2>
 <div class="accordion">
 <div class="accordion-item">
  <button id="accordion-button-1" aria-expanded="false">
 <span class="accordion-title">Why is the moon sometimes
  out during the day?</span>
 <span class="icon" aria-hidden="true"></span>
  </button>
 <div class="accordion-content">
   <p>Lorem ipsum ...</p>
 </div>
 </div>
  <div class="accordion-item">
   <button id="accordion-button-2" aria-expanded="false">
    <span class="accordion-title">Why is the sky blue?</span>
     <span class="icon" aria-hidden="true"></span>
   </button>
 <div class="accordion-content">
   <p>Lorem ipsum ...</p>
  </div>
 </div>
  <!-- More items
  </div>
 </div>

Program di atas merupakan contoh struktur HTML untuk membuat sebuah accordion menggunakan JavaScript. Mari kita jelaskan masing-masing elemen dalam struktur tersebut:

  1. <div class="container">: Ini adalah kontainer utama yang mengelilingi seluruh accordion. Ini bisa digunakan untuk menetapkan lebar, tinggi, dan gaya lainnya untuk accordion.

  2. <h2>Frequently Asked Questions</h2>: Ini adalah judul accordion, yang memberikan konteks tentang apa yang akan ditampilkan di dalamnya. Dalam contoh ini, accordion berisi daftar pertanyaan yang sering diajukan.

  3. <div class="accordion">: Ini adalah elemen yang mengelilingi seluruh daftar accordion. Ini adalah tempat di mana semua item accordion akan dimasukkan.

  4. <div class="accordion-item">: Setiap item accordion diwakili oleh elemen ini. Di dalam setiap item accordion terdapat sebuah tombol dan konten yang terkait.

  5. <button id="accordion-button-1" aria-expanded="false">: Ini adalah tombol yang digunakan untuk membuka atau menutup bagian accordion. id digunakan untuk mengidentifikasi tombol secara unik, sementara aria-expanded digunakan untuk memberikan informasi aksesibilitas tentang apakah konten accordion sedang terbuka atau tertutup.

  6. <span class="accordion-title">Why is the moon sometimes out during the day?</span>: Ini adalah judul atau pertanyaan yang akan ditampilkan di tombol accordion. Di sini, judul pertanyaan "Why is the moon sometimes out during the day?" ditampilkan.

  7. <div class="accordion-content">: Ini adalah konten yang terkait dengan item accordion tersebut. Konten ini akan ditampilkan atau disembunyikan ketika tombol di atasnya ditekan.

  8. <p>Lorem ipsum ...</p>: Ini adalah teks dummy atau placeholder yang akan digantikan dengan konten nyata yang ingin ditampilkan untuk pertanyaan tersebut.

Setiap item accordion diulangi menggunakan struktur yang sama, dengan tombol dan konten yang sesuai untuk setiap pertanyaan atau item yang berbeda. Ini menciptakan daftar accordion yang dapat dibuka dan ditutup untuk menampilkan atau menyembunyikan konten terkait dengan pertanyaan yang berbeda.

2. Code CSS

.container {
margin: auto;
padding: 4rem;
width: 48rem;
}

.accordion .accordion-item {
border-bottom: 1px solid #e5e5e5; 
}

.accordion accordion-item button
[aria-expanded-true]{ 
border-bottom: 1px solid #03b5d2;
}

.accordion button {
display: block;
text-align: left;
width: 100%;
padding: 1em 0;
position: relative; font-weight: 400; 
color: #7288a2; font-size: 1.15rem;
border: none;
background: none;
outline: none;
}

.accordion button:hover, 
.accordion button:focus {
cursor: pointer;
color: #4D4D4D;
}

.accordion button:hover::after, 
.accordion button:focus::after {
cursor: pointer;
color: #03b5d2;
border: 1px solid #03b5d2;
}

.accordion button.accordion-title { 
padding: lem 1.5em lem 0;
}

.accordion button icon {
display: inline-block;
position: absolute;
top: 18px;
right: 0;
width: 22px;
height: 22px;
border: 1px solid;
border-radius: 22px;
}

accordion button[aria-expanded=true] 
.accordion-content {
opacity: 1;
max-height: 9em;
transition: all 200ms linear;
will-change: opacity, max-height;
}

.accordion.accordion-content {
opacity: 0;
max-height: 0;
overflow: hidden;
transition: opacity 200ms linear, max-height 200ms linear;
will-change: opacity, max-height;
}

.accordion accordion-content p {
font-size: 1rem;
font-weight: 300;
margin: 2em 0;
}

Program di atas adalah kumpulan aturan CSS yang digunakan untuk mengatur tata letak dan gaya visual dari struktur HTML yang telah ditentukan sebelumnya untuk membuat accordion. Mari kita jelaskan beberapa bagian kunci dari kode CSS tersebut:

  1. Pengaturan Kontainer Utama:

    • .container: Ini adalah kelas yang digunakan untuk mengatur tata letak dan ukuran kontainer utama di mana accordion akan ditempatkan. Properti margin, padding, dan width digunakan untuk mengatur jarak dari tepi halaman, spasi internal, dan lebar kontainer, masing-masing.
  2. Gaya Accordion dan Itemnya:

    • .accordion .accordion-item: Digunakan untuk mengatur tampilan umum dari setiap item accordion, termasuk garis pembatas di antara setiap item.
    • .accordion accordion-item button[aria-expanded=true]: Digunakan untuk memberikan gaya khusus pada tombol accordion yang saat ini sedang diperluas (yaitu, aria-expanded=true). Di sini, properti border-bottom diterapkan untuk menyorot tombol yang aktif saat ini.
  3. Gaya Tombol Accordion:

    • .accordion button: Mengatur gaya tombol accordion secara umum, termasuk tata letak, ukuran, dan properti lainnya.
    • .accordion button:hover, .accordion button:focus: Menentukan gaya saat tombol accordion dihover atau difokuskan, termasuk perubahan warna teks.
    • .accordion button.accordion-title: Memberikan properti gaya tambahan khusus untuk judul accordion.
    • .accordion button icon: Mengatur tampilan ikon yang menunjukkan status accordion (dibuka atau ditutup).
  4. Gaya Konten Accordion:

    • .accordion accordion-content: Mengatur tampilan konten yang terkait dengan setiap item accordion, termasuk transisi ketika diperluas atau disusutkan.
    • .accordion accordion-content p: Memberikan gaya khusus untuk teks konten dalam accordion.

Dengan menggunakan aturan CSS ini, Anda dapat menyesuaikan tampilan dan perilaku accordion sesuai dengan desain dan kebutuhan proyek Anda.

3. Code JavaScript

const items document.querySelectorAll(".accordion button");
function toggleAccordion() {
const itemToggle this.getAttribute('aria-expanded');
for (1 = 0; <Items.length; i++) {
items[i].setAttribute('aria-expanded', 'false');
}

if (itemToggle == 'false') {
this.setAttribute('aria-expanded', 'true');
}
}

Ltems.forEach(item Ltem.addEventListener('click', toggleAccordion));

Program di atas adalah potongan kode JavaScript yang bertujuan untuk menambahkan fungsionalitas interaktif pada accordion yang telah dibuat dengan HTML dan CSS sebelumnya. Berikut adalah penjelasan tentang bagian-bagian utama dari kode tersebut:

  1. Deklarasi Konstanta items:

    • const items = document.querySelectorAll(".accordion button");: Digunakan untuk mengambil semua elemen tombol di dalam accordion yang memiliki kelas CSS "accordion button" dan menyimpannya dalam sebuah konstanta items. Ini memungkinkan akses cepat dan efisien ke semua elemen tombol di dalam accordion.
  2. Deklarasi Fungsi toggleAccordion():

    • Ini adalah fungsi yang akan dipanggil setiap kali tombol di dalam accordion ditekan. Fungsinya adalah untuk mengganti status aria-expanded pada tombol yang ditekan, sehingga mengatur apakah konten yang terkait harus diperluas atau disusutkan.
    • const itemToggle = this.getAttribute('aria-expanded');: Mendapatkan nilai atribut aria-expanded dari tombol yang ditekan dan menyimpannya dalam konstanta itemToggle. Ini menentukan apakah konten accordion yang terkait saat ini diperluas atau tidak.
    • Loop for: Di dalam loop ini, semua tombol di dalam accordion akan disetel ke aria-expanded = 'false', sehingga semua konten accordion akan disembunyikan.
    • Jika itemToggle adalah 'false' (artinya, konten accordion saat ini disembunyikan), maka tombol yang ditekan akan disetel ke aria-expanded = 'true', sehingga konten accordion terkait akan diperluas.
  3. Menambahkan Event Listener ke Setiap Tombol Accordion:

    • items.forEach(item => item.addEventListener('click', toggleAccordion));: Ini menambahkan event listener click ke setiap tombol accordion. Ketika salah satu tombol tersebut ditekan, fungsi toggleAccordion() akan dipanggil, yang kemudian akan mengatur status aria-expanded sesuai dengan keadaan saat ini.

Dengan kode JavaScript ini, accordion akan memiliki fungsi interaktif di mana konten terkait akan diperluas atau disembunyikan saat tombolnya ditekan oleh pengguna.

Artikel Lainnya Dengan Kategori Terkait :


1. 4 Ways to Make an API Call

2. 5 Tips Menarik Javascript

3. 6 Cara Melakukan Loop Pada Array di JavaScript

4. Array Pada JavaScript

5. Belajar Javascript #01 Belajar Menyisipkan Javascript Pada HTML menggunakan Metode Internal

6. Belajar Javascript #02 Belajar Menyisipkan Javascript Pada HTML Menggunakan Metode External

7. Belajar Javascript #03 Mendeklarasikan Variabel

8. Belajar Javascript #05 Menampilkan data di console

9. Belajar Javascript #06 Operator Aritmatika

10. Belajar Javascript #07 Assignment Operator

11. Belajar Javascript #08 String Operator

12. Belajar Javascript #09 Operator Perbandingan

13. Belajar Javascript #10 Operator Logika AND, OR, NOT, pada JavaScript

14. Belajar Javascript #11 Belajar Fungsi Pada Javascript

15. Belajar Javascript #12 Cara Mendeklarasikan Fungsi Pada Javascript

16. Belajar Javascript #13 Belajar Parameter & Argument Pada Javascript

17. Belajar Javascript #14 Belajar apa itu Function Hoisting pada javascript, dan contohnya

18. Belajar Javascript #15 Lingkup Global vs Lingkup Lokal

19. Belajar Javascript #16 Mengenal Objek Javascript

20. Belajar Javascript #17 Menggunakan Object Literal

21. Belajar Javascript #18 Mengakses properti Objek

22. Belajar Javascript #19 Menambah Properti Baru pada Objek

23. Belajar Javascript #20 Menghapus Properti Objek

24. Belajar Javascript #21 Object Method

25. Belajar Javascript #22 Mengenal Array

26. Belajar Javascript #23 Mendeklarasikan Array

27. Belajar Javascript #24 Nomor Index dan Jumlah Data Array

28. Belajar Javascript #25 Mengakses Data/Element di Dalam Array

29. Belajar Javascript #26 Mengubah Data/Element pada Array

30. Belajar Javascript #27 Array Method

31. Belajar Javascript #28 Mengenal Obejek Math

32. Belajar Javascript #29 Properti Objek Math

33. Belajar Javascript #30 Method Objek Math

34. Belajar Javascript #31 Apa Itu Condinational Dalam Javascript

35. Belajar Javascript #32 Menggunakan if, else if, dan else

36. Belajar Javascript #33 Menggunakan Switch Case

37. Belajar Javascript #34 Apa itu loop?

38. Belajar Javascript #35 Apa itu for loop?

39. Belajar Javascript #36 For/in Loop

40. Belajar Javascript #37 For/of Loop

41. Belajar Javascript #38 While Loop

42. Belajar Javascript #39 Do while loop

43. Belajar Javascript #40 Pengenalan JavaScript HTML DOM

44. Belajar Javascript #41 Mengakses Element HTML

45. Belajar Javascript #42 DOM Event

46. Belajar Javascript #43 Mengubah Element HTML

47. Belajar Javascript #44 ECMAScript

48. Belajar Javascript #45 let vs const vs var

49. Belajar Javascript #46 Template Literal

50. Belajar Javascript #47 Arrow Function

51. Belajar Javascript #48 Default Parameter

52. Belajar Javascript #49 Rest Parameter & Spread Operator

53. Belajar Javascript #50 Destrukturisasi

54. Belajar Javascript #51 Object Shorthand

55. Cara Install NodeJS dan Pengertian !

56. Cara Kerja Objek Dalam JavaScript

57. Cara Membuat Drag & Drop Dengan JS

58. Cara Menggunakan JavaScript Dengan Singkat

59. Fitur JavaScript Modern

60. Function JavaScript Yang Harus Kalian Tahu

61. Getters & Setters Di JavaScript

62. HOW TO STYLE IN JAVASCRIPT

63. Implementasi Barcode menggunakan JsBarcode Pada JavaScript

64. Implementasi Kegunaan Accordion JavaScript: Meningkatkan Interaktivitas dan Pengalaman Pengguna pada Website

65. Implementasi Password Generator Dalam JavaScript

66. Implementasi Penggunaan UseRef Pada React JS

67. Implementasi permintaan GET menggunakan XMLHttpRequest

68. JavaScript Array flatMap

69. JavaScript Function Apply()

70. JavaScript Notification API

71. JavaScript Template LIterals

72. JavaScript Use Strict

73. Kinerja Supercharge Dengan Pekerja Web Menggunakan JavaScript

74. Kode Kilat JavaScript: Solusi Cepat dalam Satu Baris!

75. Kombinasi Scroll Magic dan Intersection Observer

76. Memahami dan Menerapkan Metode filter() dalam JavaScript

77. Memahami function bind pada JavaScript

78. Memahami function call () pada JavaScript

79. Memahami Konsep Dasar Hoisting pada JavaScript

80. Memahami Nama Properti Dinamis dalam JavaScript

81. Memahami Recursion JavaScript

82. Memahami Use Strict Pada JavaScript

83. Membuat Textarea dengan Tinggi Otomatis: Solusi Elegan untuk Pengalaman Pengguna yang Lebih Baik

84. Mempelajari Javascript #04 Tipe Data Javascript

85. Mempelajari Penggunaan Event Delegation Dalam JavaScript

86. Mengenal 4 Cara Untuk Melakukan Panggilan API

87. Mengenal Class Di JavaScript

88. MengenaL Macam-Macam String Dasar JavaScript

89. Mengenal Penggunaan Fungsi Pada JavaScript

90. Mengenal Penggunaan Spread Syntax Pada JavaScript

91. Mengenal Variabel Pada JavaScript

92. Mengenali Beberapa Macam Loop Pada JavaScript

93. Mengoptimalkan Kode Dengan Destructuring Assignment

94. Meningkatkan Interaktivitas dengan Pembuatan Tab Bar : Memperkaya Navigasi Website Anda

95. Metode Console Pro

96. Metode Console yang Wajib Anda Ketahui

97. Metode flat() pada array di JavaScript

98. Operator Penyebaran JavaScript

99. Perbedaan InnerText dan InnerHTML dalam JavaScript

100. Tema Tab Responsif dengan Animasi: Meningkatkan Pengalaman Pengguna melalui Navigasi Dinamis

101. Tipe Data Java Script

102. Tips Menulis JavaScript

103. Tips Rapi Dalam Pengembangan JavaScript

104. Web APIs Di JavaScript

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya