⊗jsPrStAcc 14 of 62 menu

Аккордеон на JavaScript

Хајде сада да имплементирамо акордеон. Он личи на табове окренуте на бок. При томе у акордеону се може затворити активан таб, ако се кликне на активну везу.

Ево узорка:

Проучите и верстање на коме ћемо решавати задатак:

<div id="parent"> <div class="tab active"> <div class="link"> <a href="#" >таб 1</a> </div> <div class="text"> текст таба 1 </div> </div> <div class="tab"> <div class="link"> <a href="#" >таб 2</a> </div> <div class="text"> текст таба 2 </div> </div> <div class="tab"> <div class="link"> <a href="#" >таб 3</a> </div> <div class="text"> текст таба 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; }

Дискусија

Технички, HTML код акордеона је погоднији од кода табова: у њему су везе директно постављене изнад спојлера који отварају и затварају. Поред тога, класа active у нашем верстању се даје заједничком родитељу везе и спојлера.

То значи да при клику на везу треба једноставно деактивирати стари таб и активирати нови. Да би се деактивирао стари таб потребно је наћи таб са класом active и уклонити из њега ту класу.

Да би се активирао нови таб потребно је по клику на везу пронаћи таб-родитеља те везе и доделити му класу active. Технички, такво претраживање се може урадити овако: једноставно пронаћи најближег родитеља везе који има класу tab.

Копирајте себи дате HTML и CSS кодове. Имплементирајте акордеон по описаном алгоритму.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј