accordable.js
A responsive, fully-loaded jQuery accordion plugin.
(This is my first jQuery plugin. Any courteous and constructive critique is welcome.)
Full Site & Demo
https://jackmparker.github.io/accordable.js/
Features
- Fully responsive with lots of features yet lightweight (only 4k minified)
- Supports jQuery easing for panel transitions
- Built-in callback functions on load, before, and after panel transitions
- Use your own custom CSS to style
- Gracefully degrades if JavaScript is disabled
- Can hold any HTML/PHP/JavaScript, etc.
- Allows multiple instances on a page
- Works in IE8+ and all
realmodern browsers (Chrome, Safari, Firefox, Opera)
Set Up
Include the proper files in your page:
<!-- include jQuery --> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <!-- include jQuery easing (optional for easing transitions) --> <script type="text/javascript" src="jquery.easing.1.3.min.js"></script> <!-- include accordable.js --> <script type="text/javascript" src="jquery.accordable.min.js"></script>
Next, set up your HTML. accordable.js assumes the following HTML structure:
<ul id="element-id"> <li> <span>Panel Heading One</span> <div>Body copy goes here...</div> </li> <li> <span>Panel Heading Two</span> <div>Body copy goes here...</div> </li> <!-- etc. --> </ul>
Then just call the function to initialize the plugin:
(function(){ $('#element-id').accordable(); })();
That's it! accordable.js should now be up and working.
Default Settings & Options
accordable.js has a number of optional settings:
(function(){ $('#element').accordable({ openPanel: [], // ARRAY - choose which panels should start opened. accepts array of panels, i.e., [1, 3, 4] etc. openAll: false, // BOOLEAN - open all panels on page load closeAll: true, // BOOLEAN - when user clicks, only allow one panel open at a time speed: 300, // INTEGER - speed of the transition (milliseconds) easing: 'swing', // STRING - easing style (be sure to include jquery easing) addClasses: true, // BOOLEAN - adds class names to accordion elements for CSS styling onLoad: function() {}, // FUNCTION - callback on accordion/page load beforeToggle: function() {}, // FUNCTION - callback before accordion fires afterToggle: function() {} // FUNCTION - callback after accordion fires }); })();
Support
For questions or bug reports please create an issue on Github.
License
Dual licensed under the MIT and GPL licenses:
Author
Copyright ©2014 Jack Parker. All Rights Reserved.