通常,手风琴布局可以这样实现:
<div class="accordion-list"> <div class="accordion-item"> <div class="accordion-item-toggle">...</div> <div class="accordion-item-content">...</div> </div> <div class="accordion-item accordion-item-expanded"> <div class="accordion-item-toggle">...</div> <div class="accordion-item-content">...</div> </div> <div class="accordion-item"> <div class="accordion-item-toggle">...</div> <div class="accordion-item-content">...</div> </div> ... </div>
上面的代码:
accordion-list
- 多个手风琴元素的列表. 可选accordion-item
- 单个手风琴元素. 必选accordion-item-toggle
- 用来展开/折叠手风琴元素内容的开关. 必选accordion-item-content
- 隐藏的手风琴元素的内容. 必选accordion-item-expanded
- 展开的手风琴元素如果你希望独立的可折叠元素,你可以不使用"accordion-list"包裹元素:
<!-- Single collapsible element --> <div class="accordion-item"> <div class="accordion-item-toggle">...</div> <div class="accordion-item-content">...</div> </div> <!-- Another separate collapsible element --> <div class="accordion-item"> <div class="accordion-item-toggle">...</div> <div class="accordion-item-content">...</div> </div>
如果你希望给列表视图加上手风琴布局,你应该使用"item-link"元素而不是"accordion-toggle"元素:
<div class="list-block accordion-list"> <ul> <li class="accordion-item"> <a href="" class="item-link item-content"> <div class="item-inner"> <div class="item-title">Item 1</div> </div> </a> <div class="accordion-item-content">Item 1 content ...</div> </li> <li class="accordion-item"> <a href="" class="item-link item-content"> <div class="item-inner"> <div class="item-title">Item 2</div> </div> </a> <div class="accordion-item-content">Item 2 content ...</div> </li> </ul> </div>
<!-- List View --> <div class="content-block-title">List View Accordion</div> <div class="list-block accordion-list"> <ul> <li class="accordion-item"><a href="#" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Item 1</div> </div></a> <div class="accordion-item-content"> <div class="content-block"> <p>Item 1 content. Lorem ipsum dolor sit amet...</p> </div> </div> </li> <li class="accordion-item"><a href="#" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Item 2</div> </div></a> <div class="accordion-item-content"> <div class="content-block"> <p>Item 2 content. Lorem ipsum dolor sit amet...</p> </div> </div> </li> ... </ul> </div> <!-- Separate collapsibles - omit "accordion-list" class--> <div class="content-block-title">Separate Collapsibles</div> <div class="list-block"> <ul> <li class="accordion-item"><a href="#" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Item 1</div> </div></a> <div class="accordion-item-content"> <div class="content-block"> <p>Item 1 content. Lorem ipsum dolor sit amet...</p> </div> </div> </li> <li class="accordion-item"><a href="#" class="item-content item-link"> <div class="item-inner"> <div class="item-title">Item 2</div> </div></a> <div class="accordion-item-content"> <div class="content-block"> <p>Item 2 content. Lorem ipsum dolor sit amet...</p> </div> </div> </li> ... </ul> </div> <!-- Custom Accordion --> <div class="content-block-title">Custom Accordion</div> <div class="content-block accordion-list custom-accordion"> <div class="accordion-item"> <div class="accordion-item-toggle"> <i class="icon icon-plus">+</i> <i class="icon icon-minus">-</i> <span>Item 1</span> </div> <div class="accordion-item-content"> <p>Item 1 content. Lorem ipsum dolor sit amet...</p> </div> </div> <div class="accordion-item"> <div class="accordion-item-toggle"> <i class="icon icon-plus">+</i> <i class="icon icon-minus">-</i> <span>Item 2</span> </div> <div class="accordion-item-content"> <p>Item 2 content. Lorem ipsum dolor sit amet...</p> </div> </div> ... </div>
手风琴组件有JavaScript API,你可以在JS中控制打开和关闭。方法说明如下:
myApp.accordionOpen(item) - 打开指定的条目
myApp.accordionClose(item) - 关闭指定条目
myApp.accordionToggle(item) - toggle 指定条目
手风琴有这些事件:
事件名称 | Target | 说明 |
---|---|---|
open | Accordion item<div class="accordion-item"> | 某一条目开始执行打开动画的时候会触发 |
opened | Accordion item<div class="accordion-item"> | 某一条目完成打开动画后触发 |
close | Accordion item<div class="accordion-item"> | 某一条目开始执行关闭动画的时候会触发 |
closed | Accordion item<div class="accordion-item"> | 某一条目完成关闭动画后触发 |
var myApp = new Framework7(); var $$ = Dom7; $$('.accordion-item').on('opened', function () { myApp.alert('Accordion item opened'); }); $$('.accordion-item').on('closed', function (e) { myApp.alert('Accordion item closed'); });