FREND Components: Accordion

Einfach verwendbvare Widgets, Komponenten ohne weitere Abhängigkeiten, zugänglich Aria-kompatibel
Nicht IE8 kompatibel

Accordion header 1

Accordion panel 1 Überschrift

Ich bin ein Text und so schrecklich einsam. Wenn doch nur mal ein schönes Wort vorbei käme, dann würde ich sagen: "Hey du hübsches Wort, so allein heute", aber ich kenne diese geilen Luder. Diese Wörter sind doch alle gleich. Kaum gibst du ihnen einen Buchstaben, wollen sie gleich den ganzen Satz. Und willst du mal ein Komma, oder gar einen Punkt, dann reißen sie dir dein I-Tüpfelchen... aahh was wollte ich noch mal sagen? Ach ja, jetzt fällts mir wieder ein. Ich bin ein Text und so schrecklich...

Accordion header 2

Accordion panel 2 Überschrift

Mauris rhoncus commodo sapien, eu porttitor libero gravida at. Maecenas a dapibus lorem. Suspendisse fermentum neque ligula, et dapibus libero volutpat scelerisque. Cras vitae enim interdum, fringilla sapien quis, posuere purus. Morbi dictum arcu sapien, eget malesuada lorem ultricies non. Etiam tellus neque, dapibus ac rutrum ut, mollis vel nibh.

Accordion header 3

Accordion panel 3 Überschrift

Quisque facilisis fermentum ex, in iaculis felis porta et. Phasellus sapien neque, sagittis vitae erat vitae, consequat vulputate lacus. Donec sit amet mattis ipsum. Ut metus ipsum, consectetur tincidunt imperdiet sed, consequat sed urna. Morbi id feugiat magna. Nunc ut aliquet quam. Morbi auctor sapien quam. Cras lorem neque, imperdiet ut mollis non, cursus scelerisque augue.

Vorteile:

  • Absolut keine Abhängigkeiten! Kein jQuery.
  • sehr klein, ca. 4kb
  • tastaturnavigierbar, Aria compliant, zugänglich
  • destroy() und init() verfügbar, viele Options
  • Mit TAB zum Accordion springen und dann mit SPACE oder ENTER auf- oder zu klappen, mit Cursortasten zwischen Header navigieren

Nachteile:

  • Nicht IE8 kompatibel
  • Ein Haufen CSS Classes

Fazit:

  • Vewrwenden!

Quellen:

var myAccordion = Fraccordion({
	// String - Outer container selector, hook for JS init() method
	selector: '.js-fr-accordion',

	// String - Accordion header elements converted to focusable, togglable elements
	headerSelector: '.js-fr-accordion__header',

	// String - Use header id on element to tie each accordion panel to its header - see panelIdPrefix
	headerIdPrefix: 'accordion-header',

	// String - Accordion panel elements to expand/collapse
	panelSelector: '.js-fr-accordion__panel',

	// String - Use panel id on element to tie each accordion header to its panel - see headerIdPrefix
	panelIdPrefix: 'accordion-panel',

	// Boolean - If set to false, all accordion panels will be closed on init()
	firstPanelsOpenByDefault: true,

	// Boolean - If set to false, each accordion instance will only allow a single panel to be open at a time
	multiselectable: true,

	// String - Class name that will be added to the selector when the component has been initialised
	readyClass: 'fr-accordion--is-ready'
});