⊗jsPrStAcc 14 of 62 menu

JavaScript ile Akordeon

Şimdi bir akordeon uygulaması gerçekleştirelim. Akordeon, yan tarafa çevrilmiş sekmelere benzer. Ayrıca akordeonda, aktif sekme üzerindeki bağlantıya tıklandığında mevcut sekme kapatılabilir.

İşte bir örnek:

Görevi çözeceğimiz HTML işaretlemesini de inceleyin:

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

Tartışma

Teknik olarak akordeonun HTML kodu, sekme kodundan daha kullanışlıdır: bağlantılar, açıp kapattıkları spoiler'ın hemen üzerinde bulunur. Ayrıca, işaretlememizdeki active sınıfı, bağlantı ve spoiler'ın ortak ebeveynine verilir.

Bu, bir bağlantıya tıklandığında eski sekmenin devre dışı bırakılması ve yeni sekmenin etkinleştirilmesi gerektiği anlamına gelir. Eski sekmeyi devre dışı bırakmak için, active sınıfına sahip olan sekmeyi bulup bu sınıfı ondan kaldırmak gerekir.

Yeni sekmeyi etkinleştirmek için, bağlantıya tıklandığında bu bağlantının ebeveyn sekmesini bulup ona active sınıfını vermek gerekir. Teknik olarak böyle bir arama şu şekilde yapılabilir: tab sınıfına sahip olan, bağlantının en yakın ebeveynini bulmak.

Verilen HTML ve CSS kodlarını kendinize kopyalayın. Tarif edilen algoritmaya göre akordeonu uygulayın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet