⊗jsPrStAcc 14 of 62 menu

Akordeon v JavaScriptu

Nyní implementujme akordeon. Je podobný záložkám, které jsou otočené na bok. Navíc v akordeonu lze aktuální záložku zavřít kliknutím na aktivní odkaz.

Zde je ukázka:

Prostudujte také HTML strukturu, na které budeme řešit úlohu:

<div id="parent"> <div class="tab active"> <div class="link"> <a href="#" >záložka 1</a> </div> <div class="text"> text záložky 1 </div> </div> <div class="tab"> <div class="link"> <a href="#" >záložka 2</a> </div> <div class="text"> text záložky 2 </div> </div> <div class="tab"> <div class="link"> <a href="#" >záložka 3</a> </div> <div class="text"> text záložky 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; }

Diskuse

Technicky je HTML kód akordeonu pohodlnější než kód záložek: v něm jsou odkazy umístěny přímo nad obsahem, který otevírají a zavírají. Navíc třída active v naší struktuře je přiřazena společnému rodiči odkazu a obsahu.

To znamená, že při kliknutí na odkaz stačí pouze deaktivovat starou záložku a aktivovat novou. Pro deaktivaci staré záložky je třeba najít záložku s třídou active a odstranit z ní tuto třídu.

Pro aktivaci nové záložky je třeba při kliknutí na odkaz najít rodičovskou záložku tohoto odkazu a přidat jí třídu active. Technicky lze takové vyhledání provést takto: jednoduše najít nejbližšího rodiče odkazu, který má třídu tab.

Zkopírujte si uvedené HTML a CSS kódy. Implementujte akordeon podle popsaného algoritmu.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout