wfAccordion插件可以很容易地帮助开发人员为分段内容或常见问题创建响应灵敏且可访问的accordions。
咏叹调膨胀
,隐藏的咏叹调
,aria已禁用
.aria控件
,标记的咏叹调
.1.要开始,请下载并导入wfAccordion。
- <!-- jQuery -->
- <script src="/path/to/jquery.min.js"></script>
- <script src="/path/to/wf.accordion.js"></script>
- <!-- Vanilla JavaScript -->
- <script src="/dist/wf.accordion.min.js" defer></script>
- // ES Module
- import 'webfactory-accordion/dist/wf.accordion.min';
2.构建手风琴的HTML结构。
- <div class="wf-accordion-group js-accordion-group">
- <div class="wf-accordion js-accordion">
- <div class="wf-accordion__header js-accordion__header">
- <h3 class="wf-accordion__trigger js-accordion__trigger">This is an accordion</h3>
- </div>
- <div class="wf-accordion__panel js-accordion__panel">
- <p>Accordions are a common design pattern in web design. They are often used to hide large chunks of content from the user intially. The aim is to provide a general overview of the content to the user, so that he can decide which part of it is interesting to him and can expand the content via interaction.</p>
- </div>
- </div>
- <div class="wf-accordion js-accordion" data-wf-accordion-expanded="">
- <div class="wf-accordion__header js-accordion__header">
- <h3 class="wf-accordion__trigger js-accordion__trigger">This accordion is expanded initially</h3>
- </div>
- <div class="wf-accordion__panel js-accordion__panel">
- <p>Add "data-wf-accordion-expanded" to the accordion's root element to expand its panel initially.</p>
- </div>
- </div>
- <div class="wf-accordion js-accordion" data-wf-accordion-disabled="">
- <div class="wf-accordion__header js-accordion__header">
- <h3 class="wf-accordion__trigger js-accordion__trigger">This accordion has been disabled by adding "data-wf-accordion-disabled" to its root element</h3>
- </div>
- <div class="wf-accordion__panel js-accordion__panel">
- <p>Add "data-wf-accordion-disabled" to the accordion's root element to disable it.</p>
- </div>
- </div>
- <div class="wf-accordion js-accordion">
- <div class="wf-accordion__header js-accordion__header">
- <h3 class="wf-accordion__trigger js-accordion__trigger">
- <span class="some-important-modifier-class">This accordion's trigger element has <em>nested</em> <strong>elements</strong> (e.g. a <code>strong</code> or <code>span</code>)</span>
- </h3>
- </div>
- <div class="wf-accordion__panel js-accordion__panel">
- <p>You can use nested elements inside the element with <code>.js-accordion__trigger</code>.</p>
- </div>
- </div>
- <div class="wf-accordion js-accordion">
- <div class="wf-accordion__header js-accordion__header">
- <div class="wf-accordion__trigger js-accordion__trigger">
- <h3>This accordion's trigger element has a nested heading that will become the parent element of the button.</h3>
- </div>
- </div>
- <div class="wf-accordion__panel js-accordion__panel">
- <p>To result in valid HTML, the final DOM needs to avoid nesting block-level elements in buttons.</p>
- </div>
- </div>
- </div>
3.初始化手风琴。
- $(function(){
- // jQuery Only
- $('.js-accordion-group').wfAccordion();
- });
4.将您自己的CSS样式应用于手风琴。
- /**
- * Accordion example styles
- */
- .wf-accordion-group {
- margin-top: 15px;
- }
- /* All elements succeeding an accordion group use margin-top to create white space */
- .wf-accordion-group+* {
- margin-top: 30px;
- }
- /* All accordions have borders⦠*/
- .wf-accordion {
- border-top: 1px solid #929292;
- border-bottom: 1px solid #929292;
- }
- /* â¦unless they directly succeed another accordion, in which case we reset the top-border
- to avoid duplicate white space */
- .wf-accordion+.wf-accordion {
- border-top-width: 0;
- }
- .wf-accordion__header {
- color: #616161;
- }
- /* Please note: The trigger element is a <button> create via JS. To achieve consistent aesthetics,
- the native button styles have to be resetted here */
- .wf-accordion__trigger {
- /* baseline resets */
- background: transparent;
- border-width: 0;
- border-radius: 0;
- box-sizing: border-box;
- cursor: pointer;
- display: inline-block;
- font-size: inherit;
- letter-spacing: inherit;
- line-height: inherit;
- margin: 0;
- padding: 0;
- text-align: left;
- text-decoration: none;
- /* end of baseline resets */
- /* additional styles for the demo */
- display: block;
- font-family: Arial, sans-serif;
- padding: 10px 1.25em 10px 8px;
- position: relative;
- width: 100%;
- }
- .wf-accordion__trigger::after {
- content: '';
- border: solid #929292;
- border-width: 0 2px 2px 0;
- height: 0.5em;
- position: absolute;
- right: 10px;
- top: 50%;
- transform: translateY(-60%) rotate(45deg);
- width: 0.5em;
- }
- .wf-accordion__trigger[aria-disabled=true] {
- cursor: not-allowed;
- opacity: 0.5;
- }
- .wf-accordion__trigger[aria-expanded=true]::after {
- transform: translateY(-30%) rotate(-135deg);
- }
- .wf-accordion__trigger:hover,
- .wf-accordion__trigger:focus {
- background: #f5f5f5;
- color: #161616;
- }
- .wf-accordion__trigger:hover::after,
- .wf-accordion__trigger:focus::after {
- border-color: #161616;
- }
- .wf-accordion__panel {
- background-color: #fff;
- padding: 10px 8px;
- }
- .wf-accordion__panel[aria-hidden=true] {
- display: none;
- }
5.可用配置。
- $('.js-accordion-group').wfAccordion({
- // default selectors
- accordionGroup: '.js-accordion-group',
- accordionRoot: '.js-accordion',
- accordionHeader: '.js-accordion__header',
- accordionTrigger: '.js-accordion__trigger',
- accordionPanel: '.js-accordion__panel',
- // disables the automated hash update when triggering an accordion
- disableHashUpdate: false,
- });
版本4.0.2(2023-02-09)
4.0版(2023-01-27)
2021-07-07
2021-07-01
2021-02-17
2019-08-24
Â