⊗jsPrStAcc 14 of 62 menu

Acordeon în JavaScript

Să implementăm acum un acordeon. Acesta este asemănător cu filele, răsturnate pe o parte. În același timp, în acordeon poți închide fila curentă, dacă apeși pe legătura activă.

Iată un exemplu:

Studiați de asemenea și markup-ul, pe care vom rezolva problema:

<div id="parent"> <div class="tab active"> <div class="link"> <a href="#" >fila 1</a> </div> <div class="text"> textul filei 1 </div> </div> <div class="tab"> <div class="link"> <a href="#" >fila 2</a> </div> <div class="text"> textul filei 2 </div> </div> <div class="tab"> <div class="link"> <a href="#" >fila 3</a> </div> <div class="text"> textul filei 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; }

Discuție

Din punct de vedere tehnic, codul HTML al acordeonului este mai convenabil decât codul filelor: în el, legăturile sunt situate direct deasupra spoilerului pe care îl deschid și închid. În plus, clasa active în markup-ul nostru este dată părintelui comun al legăturii și spoilerului.

Aceasta înseamnă că la click pe legătură trebuie doar să dezactivăm vechea filă și să activăm cea nouă. Pentru a dezactiva vechea filă trebuie să găsim fila cu clasa active și să îi eliminăm această clasă.

Pentru a activa noua filă trebuie la click pe legătură să găsim părintele acestei legături și să îi dăm clasa active. Din punct de vedere tehnic, o astfel de căutare se poate face astfel: pur și simplu găsiți părintele cel mai apropiat al legăturii, care are clasa tab.

Copiați codurile HTML și CSS date. Implementați acordeonul conform algoritmului descris.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge