Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
M

Meny

> 编程语言
Open source

A three dimensional and space effecient menu

2.3K stars0 likes2 views
WebsiteGitHub

About

A three dimensional and space effecient menu

Meny

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.

Check out the demo page.

Instructions

1. Download

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.

2. Markup

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.

xml
<body>
  

  

</body>

Some rules, notes and best practices to keep in mind in terms of markup and styling:

  • The menu and contents should have the same parent element.
  • The background which appears behind the contents when Meny is open is not added by the library. You need to set your desired background to the parent element. The default style can be found in demo.css.
  • The arrow which appears when Meny is closed is also not added by the library, if you want it you can easily copy the styles from the demo.css.
  • The menu container will be automatically resized by the library according to configuration options.
  • Meny works on scrolling pages as the menu itself is fixed.

3. Initialize

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:

…

4. API & Events

A few handy methods API methods are included, you call these on the instance returned by Meny.create (see above).

javascript
meny.configure({ mouse: false }); // change settings after initialization

meny.open();

meny.close();

meny.isOpen(); // true/false

meny.destroy(); // revert original DOM state, unbind events

The wrapper element (parent of the menu and contents) is decorated with classes based on its state:

css
.meny-active
.meny-top
.meny-right
.meny-bottom
.meny-left

Instances of Meny dispatch events to notify you of their state:

javascript
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

} );

History

1.4.0

  • Adds opened and closed events
  • Adds destroy API method

1.3.0

  • Add touch and mouse config options
  • Fix error with tap to close when meny is on the left
  • Add configure API method for changing settings at runtime

1.2.0

  • Improvements to touch interaction
  • Setting threshold to 0 disables hover/touch-to-open

1.1.0

  • Instances of Meny now dispatch 'open'/'close' events

1.0.0

  • 2D animation fallback (works in IE8+)

0.9.0

  • Rewrote the JavaScript
  • All core styles/transforms are set via JavaScript
  • Made many options available at initialization
  • New JavaScript fallback using internal animation method

0.3.0

  • Fallback mode that doesn't rely on transforms

0.2.0

  • Cleaned up CSS
  • Fix bug where original events for taps on anchors were blocked
  • It's now possible to reach the meny via tapping as well as swiping

0.1.0

  • Initial release

License

MIT licensed

Copyright (C) 2014 Hakim El Hattab, http://hakim.se

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

JavaScript

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言