Versatile Content Toggle Plugin For jQuery - contentToggle
| File Size: | 37.1 KB |
|---|---|
| Views Total: | 4122 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
An accessible, cross-browser and multi-functional jQuery content toggle plugin which allows to show or hide or toggle some HTML content with custom trigger elements. A great solution for dropdown / off-canvas menus, tabs, and accordions, and spoilers.
More Examples:
How to use it:
1. To get started, include the jQuery contentToggle plugin after you've added jQuery library in the document.
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> <script src="jquery.contenttoggle.js"></script>
2. Add trigger elements and toggleable content to your webpage. In this case, we're going to create a basic vertical accordion UI using the jQuery contentToggle plugin.
<ul class="accordion">
<li class="accordion__item js-contentToggle">
<button class="accordion__trigger js-contentToggle__trigger" type="button">Item 1</button>
<div class="accordion__content is-hidden js-contentToggle__content">
<p>Content 1</p>
</div>
</li>
<li class="accordion__item js-contentToggle">
<button class="accordion__trigger js-contentToggle__trigger" type="button">Item 2</button>
<div class="accordion__content is-hidden js-contentToggle__content">
<p>Content 2</p>
</div>
</li>
<li class="accordion__item js-contentToggle">
<button class="accordion__trigger js-contentToggle__trigger" type="button">Item 3</button>
<div class="accordion__content is-hidden js-contentToggle__content">
<p>Content 3</p>
</div>
</li>
</ul>
3. Call the function and we're done.
$( ".js-contentToggle" ).contentToggle();
4. Config the plugin with the following default options.
$( ".js-contentToggle" ).contentToggle({
// enforce the default state of an element
// 'open' or 'close'
defaultState: null,
// When setting this option to true a click event listener will be added to the document with the associated action of closing all elements.
globalClose: false,
// If elements inside a group are independent, it breaks the rule of having only one visible content at the same time for a group.
independent: false,
// If true the element will not close if the close request comes from itself.
noSelfClosing: false,
// A function to be called before an action (toggle, open or close).
beforeCallback: null,
// It prevents the content to close itself when the user click inside.
stopPropagation: true,
// The selector of the triggers.
triggerSelector: ".js-contentToggle__trigger",
// If true the main element will be used as context for the query selector
triggerSelectorContext: true,
// The selector of the labels.
labelSelector: null,
// Same as triggerSelectorContext but for labels.
labelSelectorContext: true,
// The selector of the contents.
contentSelector: ".js-contentToggle__content",
// Same as triggerSelectorContext but for contents.
contentSelectorContext: true,
// A class that will be added to the main element when its state is open.
elementClass: "is-open",
// A class that will be added to the active trigger.
triggerClass: "is-active",
// If not null, the labels will be updated with that value when the state is opened (HTML allowed).
openedLabel: null,
// If not null, the labels will be updated with that value when the state is closed (HTML allowed).
closedLabel: null,
// An array of CSS properties to be toggled.
// Available properties : height, width and opacity with the toggle value.
toggleProperties: [ "height" ],
// The options object to be used as second argument of the jQuery animate(properties, options) function.
toggleOptions: {
duration: 0
}
});
5. You can also pass the options to the plugin using HTML5 data-* attributes like this:
<div class="js-contentToggle" data-default-state="open"></div>
Change log:
2016-10-13
- JS update
2016-07-07
- Correction for IE8.
- Add new stopPropagation option.
This awesome jQuery plugin is developed by tonai. For more Advanced Usages, please check the demo page or visit the official website.











