Responsive jQuery Mobile-Style Sliding Menu Plugin - Slinky
File Size: | 127 KB |
---|---|
Views Total: | 7587 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
Slinky is a fully responsive jQuery plugin used to create a mobile App style sliding navigation menu that has nested ul
based multi-level functionality. The next level can cover the previous one with a smooth sliding effect to save space on your web page.
Installation:
# Yarn $ yarn add jquery-slinky # NPM $ npm install jquery-slinky --save
How to use it:
1. Include the jQuery sliding menu plugin and other resources in your Html file.
<link rel="stylesheet" type="text/css" href="css/jquery-sliding-menu.css"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="js/jquery-sliding-menu.js"></script>
2. Create an empty container element for the sliding navigation menu.
<div id="menu"> </div>
3. Create menu items using nested Html lists.
<div id="menu"> <ul> <li> <a href="#">Artists</a> <ul> <li> <a href="#">Aerosmith</a> <ul> <li> <a href="#">Get Your Wings</a> <ul> <li> <a href="#">Train Kept A-Rollin'</a> </li> <li> <a href="#">Same Old Song and Dance</a> </li> </ul> </li> </ul> </li> <li> <a href="#">Eagles</a> <ul> <li> <a href="#">Hotel California</a> <ul> <li> <a href="#">Hotel California</a> </li> <li> <a href="#">Pretty Maids All in a Row</a> </li> </ul> </li> </ul> </li> <li> <a href="#">Led Zeppelin</a> <ul> <li> <a href="#">Physical Graffiti</a> <ul> <li> <a href="#">In My Time of Dying</a> </li> <li> <a href="#">Houses of the Holy</a> </li> </ul> </li> </ul> </li> </ul> </li> <li> <a href="#">Albums</a> <ul> <li> <a href="#">Get Your Wings</a> <ul> <li> <a href="#">Train Kept A-Rollin'</a> </li> <li> <a href="#">Same Old Song and Dance</a> </li> </ul> </li> <li> <a href="#">Hotel California</a> <ul> <li> <a href="#">Hotel California</a> </li> <li> <a href="#">Pretty Maids All in a Row</a> </li> </ul> </li> <li> <a href="#">Physical Graffiti</a> <ul> <li> <a href="#">In My Time of Dying</a> </li> <li> <a href="#">Houses of the Holy</a> </li> </ul> </li> </ul> </li> <li> <a href="#">Songs</a> <ul> <li> <a href="#">In My Time of Dying</a> </li> <li> <a href="#">Houses of the Holy</a> </li> <li> <a href="#">Hotel California</a> </li> <li> <a href="#">Pretty Maids All in a Row</a> </li> <li> <a href="#">Train Kept A-Rollin'</a> </li> <li> <a href="#">Same Old Song and Dance</a> </li> </ul> </li> <li> <a href="#">Genres</a> <ul> <li> <a href="#">Rock</a> <ul> <li> <a href="#">Hotel California</a> </li> <li> <a href="#">Pretty Maids All in a Row</a> </li> <li> <a href="#">Train Kept A-Rollin'</a> </li> <li> <a href="#">Same Old Song and Dance</a> </li> </ul> </li> <li> <a href="#">Hard rock</a> <ul> <li> <a href="#">In My Time of Dying</a> </li> <li> <a href="#">Houses of the Holy</a> </li> </ul> </li> </ul> </li> <li> <a href="#">Settings</a> <ul> <li> <a href="#">Profile</a> </li> <li> <a href="#">Player</a> <ul> <li> <a href="#">Volume</a> </li> <li> <a href="#">Equalizer</a> </li> </ul> </li> </ul> </li> </ul> </div>
4. Or using JSON data format in the javascript.
var data = [ { "label": "Item 1", "children": [ { "label": "Item I", "href": "#" }, { "label": "Item II", "children": [ { "label": "Item A", "href": "#" }, { "label": "Item B", "href": "#" }, { "label": "Item C", "href": "#" }, { "label": "Item D", "href": "#" } ] } ] }, { "label": "Item 2", "href": "#" }, { "label": "Item 3", "href": "#" }, { "label": "Item 4", "href": "#" }, { "label": "Item 5", "children": [ { "label": "Item I", "href": "#" }, { "label": "Item II", "href": "#" }, { "label": "Item III", "children": [ { "label": "Item A", "href": "#" }, { "label": "Item B", "href": "#" }, { "label": "Item C", "href": "#" }, { "label": "Item D", "href": "#" } ] } ] } ]
4. Call the plugin on the container you just created.
$('#menu').slinky(data);
5. Options and defaults.
$('#menu').slinky({ // auto resize height resize: true, // animation speed speed: 300, // theme CSS theme: 'slinky-theme-default', // shows title of sub menu title: false });
6. API methods.
const slinky = $('.menu').slinky(options) // back to the root menu // animate: true or false slinky.home(animate) // jump to a sub menu // target: target selector // animate: true or false slinky.jump(target, animate) // destroy the menu slinky.destroy()
Changelog:
v4.2.1 (2019-07-14)
- refactor
2018-07-12
- Dependencies upgraded
2018-01-08
- Set initial height on the menu
2017-10-31
- bugfix
2017-10-25
- v4
This awesome jQuery plugin is developed by alizahid. For more Advanced Usages, please check the demo page or visit the official website.