⊗jsPrStAcc 14 of 62 menu

Accordéon en JavaScript

Implémentons maintenant un accordéon. Il est similaire à des onglets retournés sur le côté. De plus, dans un accordéon, on peut fermer l'onglet actuel en cliquant sur le lien actif.

Voici un exemple :

Étudiez également le balisage sur lequel nous résoudrons le problème :

<div id="parent"> <div class="tab active"> <div class="link"> <a href="#" >onglet 1</a> </div> <div class="text"> texte de l'onglet 1 </div> </div> <div class="tab"> <div class="link"> <a href="#" >onglet 2</a> </div> <div class="text"> texte de l'onglet 2 </div> </div> <div class="tab"> <div class="link"> <a href="#" >onglet 3</a> </div> <div class="text"> texte de l'onglet 3 </div> </div> </div> #parent { margin: 0 auto; width: 400px; } .tab { margin-bottom: 10px; } .tab .link a { display: block; padding: 10px; color: black; text-decoration: none; text-align: center; background: #f8f8f8; border: 1px solid gray; } .tab .link:hover a { background: #f2f2f2; } .tab:not(.active) .text { display: none; } .tab .text { border: 1px dashed gray; border-top: none; padding: 10px; height: 300px; }

Discussion

Techniquement, le code HTML de l'accordéon est plus pratique que le code des onglets : dans celui-ci, les liens sont situés directement au-dessus du spoiler qu'ils ouvrent et ferment. De plus, la classe active dans notre balisage est donnée au parent commun du lien et du spoiler.

Cela signifie que lors d'un clic sur un lien, il faut simplement désactiver l'ancien onglet et activer le nouveau. Pour désactiver l'ancien onglet, il faut trouver l'onglet avec la classe active et lui retirer cette classe.

Pour activer le nouvel onglet, il faut, lors d'un clic sur le lien, trouver l'onglet parent de ce lien et lui donner la classe active. Techniquement, une telle recherche peut être faite ainsi : il suffit de trouver le parent le plus proche du lien ayant la classe tab.

Copiez les codes HTML et CSS fournis. Implémentez l'accordéon selon l'algorithme décrit.

bydeenesfrptru