Lightweight jQuery Collapse Control Plugin - Collapsable
File Size: | 21.8 KB |
---|---|
Views Total: | 4370 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
Collapsable is a very small, cross-browser jQuery content toggle plugin which allows you to expand and collapse whatever you want. Highly customizable, WAI ARIA compliant and very smooth.
Key features:
- Custom animations for expanding/collapsing.
- Custom trigger events.
- Accordion mode which allows more than one expanded box in same time.
Basic usage:
1. Load jQuery library and the jQuery collapsable plugin at the end of the document.
<script src="//code.jquery.com/jquery-1.12.1.min.js"></script> <script src="dist/jquery.collapsable.js"></script>
2. Create a basic content toggle following the markup structure like this:
<div id="ca-1" class="collapsable example"> <h2 class="ca-control">Collapsable with toggle</h2> <div class="ca-box"> <p>Content here.</p> </div> </div>
3. Just call the function on the top container and you're done.
$('.example').collapsable({ // options here });
4. Here's a list of default plugin options help you customize the content toggle control.
$('.example').collapsable({ // CSS selector for control element control: '.ca-control', // CSS selector for hideable element (box) box: '.ca-box', // event triggering the expand/collapse event: 'click', // whether prevenDefault should be called when specified event occurs on control; even if false, e.collapsableEvent.preventDefault() may be used inside collapsable event handlers preventDefault: true, // effect for expanding/collapsing, [ false | toggle | slide | fade | {Object} ] fx: null, // duration of the effect, affects delay between `expand.collapsable`(`collapse.collapsable`) and `expanded.collapsable` (`collapsed.collapsable`) evetns are triggered; default value is 500 when fx set to slide fxDuration: 0, // determines, if there could be more than one expanded box in same time; related to jQuery set on which initialized accordion: false, // possibility of collapsing all boxes from set collapsableAll: true, // external links for operating collapsable set, can be anywhere else in DOM extLinks: { // CSS selector for external links; it has to be anchors; the click event is binded selector: '', // whether preventDefault is called on extLinks click preventDefault: false }, // CSS class names to be used on collapsable box; they are added to element, on which collapsable has been called classNames: { expanded: 'ca-expanded', collapsed: 'ca-collapsed', defaultExpanded: 'ca-default-expanded', extLinkActive: 'ca-ext-active' } });
5. Public methods available.
// collapses all items $('.collapsable').collapsable('expandAll'); // this will also expand all items from set, even though it has been called only on one item $('.collapsable').get(0).collapsable('expandAll'); // collapses all items $('.collapsable, .collapsable-2').collapsable('collapseAll'); // destroys collapsable and returns DOM to state prior to initialization $('.collapsable').collapsable('destroy');
Changelog:
2019-02-13
- added control if hash in url is valid selector, eg. #_=_ is would cause jQuery to throw an error
2018-01-23
- when collapsable control anchor is present in HTML and its `href` attribute is `#`, then it is replaced with collapsable box id
2017-08-04
- fixed: default expanded box could have been ignored under certain circumstances
2017-07-27
- there could be more than one box per collapsable element, id's are suffixed with index of the box and aria-controls attribute is changed appropriately
2016-09-14
- fixed for jquery 3
2016-04-17
- fixed JS error when called on empty jQuery object with 'collapsableAll: false' set
This awesome jQuery plugin is developed by zipper. For more Advanced Usages, please check the demo page or visit the official website.