Flexible Accessible Off-canvas Panel Plugin For jQuery - js-offcanvas
File Size: | 75.2 KB |
---|---|
Views Total: | 9723 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A lightweight, flexible jQuery off-canvas navigation plugin which lets you create fully accessible sidebar or top/bottom sliding (or push) panels with keyboard interactions and ARIA attributes.
Fully compatible with the latest Bootstrap 4 framework.
How to use it:
1. Add the latest version of jQuery library and other required resources to the webpage.
<link rel="stylesheet" href="js-offcanvas.css"> <script src="//code.jquery.com/jquery-3.1.0.min.js"></script> <script src="js-offcanvas.pkgd.js"></script>
2. Create the off-canvas panel following the html structure like this:
<aside class="js-offcanvas" id="left" role="complementary"> ... </aside>
3. Create a trigger link and insert it together with the main content into a container named 'c-offcanvas-content-wrap'.
<main class="c-offcanvas-content-wrap" role="main"> <a class="js-offcanvas-trigger" data-offcanvas-trigger="left" href="#left">Left</a> </main>
4. You can pass the plugin's options to the off-canvas panels like this:
<a class="js-offcanvas-trigger" data-offcanvas-trigger="left" href="#left">Left</a>
5. All available options and callbacks which can be passed via data-offcanvas-options
attribute.
{ // aria role role: "dialog", // default classes modifiers: "left,overlay", baseClass: "c-offcanvas", modalClass: "c-offcanvas-bg", contentClass: "c-offcanvas-content-wrap", closeButtonClass: "js-offcanvas-close", bodyModifierClass: "has-offcanvas", supportNoTransitionsClass: "support-no-transitions", // enable resize event resize: true, // target element target: null, // model mode modal: true, // callback functions onOpen: null, onClose: null, onInit: null };
6. API methods.
var dataOffcanvas = $('#off-canvas').data('offcanvas-component'); // opens the off-canvas menu dataOffcanvas.open(); // closes the off-canvas menu dataOffcanvas.close(); // toggles the off-canvas menu dataOffcanvas.toggle();
7. Event handlers
// before create$( document ).on( "beforecreate.offcanvas", function( e ){ var dataOffcanvas = $( e.target ).data('offcanvas-component'); console.log(dataOffcanvas); dataOffcanvas.onInit = function() { console.log(this); }; }); // after create $( document ).on( "create.offcanvas", function( e ){ } ); // when open $( document ).on( "open.offcanvas", function( e ){ } ); // when closed $( document ).on( "close.offcanvas", function( e ){ } ); // when the window resizes $( document ).on( "resizing.offcanvas", function( e ){ } ); // when the trigger is clicked $( document ).on( "clicked.offcanvas-trigger", function( e ){ var dataBtnText = $( e.target ).text(); console.log(e.type + '.' + e.namespace + ': ' + dataBtnText); });
Changelog:
2019-10-16
- Set correct aria-state on open/close
2019-10-15
- Bugfix
2019-03-23
- Bugfix
2018-01-23
- v1.2.9: Fixed problem with CSS modifier class
2018-09-08
- v1.2.8: Fade out background when closing
2018-08-12
- v1.2.7: Added destroy method.
2018-05-06
- Fixed Uncaught TypeError: Cannot read property 'activeElement' of undefined.
- Fixed w.document is always null.
2018-02-02
- Fixed Auto closes when textbox in offcanvas panel on android.
2017-12-23
- version update - scrollable
2017-09-23
- fixed dependencies.
2017-03-25
- added missing options
This awesome jQuery plugin is developed by vmitsaras. For more Advanced Usages, please check the demo page or visit the official website.