CSS手風(fēng)琴展開是一種常用的網(wǎng)頁(yè)布局方式,它可以讓網(wǎng)頁(yè)內(nèi)容在垂直方向上折疊和展開,從而實(shí)現(xiàn)頁(yè)面的動(dòng)態(tài)交互效果,下面是一些關(guān)于CSS手風(fēng)琴展開的示例代碼和步驟,幫助你快速入門。
我們需要?jiǎng)?chuàng)建一個(gè)HTML結(jié)構(gòu),包含手風(fēng)琴的頭部和內(nèi)容區(qū)域。
<div class="accordion"> <div class="accordion-item"> <a class="accordion-title" href="#">Title 1</a> <div class="accordion-content"> <p>Content 1</p> </div> </div> <div class="accordion-item"> <a class="accordion-title" href="#">Title 2</a> <div class="accordion-content"> <p>Content 2</p> </div> </div> <div class="accordion-item"> <a class="accordion-title" href="#">Title 3</a> <div class="accordion-content"> <p>Content 3</p> </div> </div> </div>
我們需要使用CSS來定義手風(fēng)琴的樣式和動(dòng)畫效果。
.accordion { width: 200px; margin: 0 auto; } .accordion-item { border-bottom: 1px solid #ccc; } .accordion-title { display: block; padding: 10px; background-color: #f5f5f5; color: #333; text-decoration: none; } .accordion-content { display: none; padding: 10px; background-color: #fff; }
我們需要使用JavaScript來添加手風(fēng)琴的交互邏輯。
var accordion = document.querySelector('.accordion'); var accordionItems = accordion.querySelectorAll('.accordion-item'); var accordionTitle = accordion.querySelectorAll('.accordion-title'); var accordionContent = accordion.querySelectorAll('.accordion-content'); var accordionHeight = accordion.offsetHeight; var accordionItemHeight = accordionItems[0].offsetHeight; var accordionTitleHeight = accordionTitle[0].offsetHeight; var accordionContentHeight = accordionContent[0].offsetHeight; var openIndex = -1; var openFlag = true; for (var i = 0; i < accordionItems.length; i++) { if (openFlag) { openIndex = i; openFlag = false; } else { if (i == openIndex) { // 關(guān)閉當(dāng)前項(xiàng),并重新打開下一項(xiàng),直到所有項(xiàng)都打開一次后,回到***項(xiàng)并關(guān)閉,然后循環(huán)往復(fù),如果所有項(xiàng)都關(guān)閉了,則回到***項(xiàng)并重新打開,如果所有項(xiàng)都打開了,則回到***項(xiàng)并重新關(guān)閉,如果所有項(xiàng)都既打開又關(guān)閉了,則回到***項(xiàng)并重新打開并關(guān)閉,以此類推,這樣可以實(shí)現(xiàn)手風(fēng)琴的展開和折疊效果。