A three dimensional and space effecient menu
A three dimensional and space effecient menu. Meny works best in browsers with support for CSS 3D transforms, although it falls back on 2D animation for older browsers. Supports touch events for mobile devices.
Add meny.js to your project. The meny.js file is the only thing required, but you could optionally clone the repository if you want to get the default styles.
Alternatively you can load the meny.js file from cdnjs, see https://cdnjs.com/libraries/meny.
Meny requires two HTML elements to work: a menu and the page contents. The class names are not used by the library so choose anything you want.
<body>
</body>Some rules, notes and best practices to keep in mind in terms of markup and styling:
Next you need create an instance of Meny and tell it which HTML elements to use. This should be done after the meny.min.js is included on your page. Example using the HTML above:
…A few handy methods API methods are included, you call these on the instance returned by Meny.create (see above).
meny.configure({ mouse: false }); // change settings after initialization
meny.open();
meny.close();
meny.isOpen(); // true/false
meny.destroy(); // revert original DOM state, unbind eventsThe wrapper element (parent of the menu and contents) is decorated with classes based on its state:
.meny-active
.meny-top
.meny-right
.meny-bottom
.meny-leftInstances of Meny dispatch events to notify you of their state:
var meny = Meny.create( ... ) // see 3. Initialize
meny.addEventListener( 'open', function() {
// do something on open
} );
meny.addEventListener( 'close', function() {
// do something on close
} );
meny.addEventListener( 'opened', function() {
// do something right after meny is opened and transitions finished
} );
meny.addEventListener( 'closed', function() {
// do something right after meny is closed and transitions finished
} );opened and closed eventsdestroy API methodtouch and mouse config optionsconfigure API method for changing settings at runtimeMIT licensed
Copyright (C) 2014 Hakim El Hattab, http://hakim.se
No open issues yet, or sync has not completed.