The popup isn’t just limited to menu items. You can insert any custom elements, making it adaptable to various use cases.
1. Import the Tiny Popup Menu’s JavaScript and Stylesheet.
<link rel="stylesheet" href="/dist/css/tiny-popup-menu.css" /> <script src="/dist/tiny-popup-menu.js"></script>
2. Initiate a new instance of TinyPopupMenu and define your menu items. These items should be structured as a JavaScript array of objects as follows:
const myMenu = new TinyPopupMenu({
menuItems: [
{
content: 'Menu Item 1',
callback: () => alert('You Clicked Item 1')
},
{
content: 'Menu Item 2',
callback: () => alert('You Clicked Item 2')
},
'-', // separator
{
content: 'Menu Item 3',
callback: () => alert('You Clicked Item 3')
},
// ... more items here
]
}); 3. Enable a button to toggle the popup menu.
myTogglerButton.onclick = function (event) {
myMenu.open(event);
}; 4. Or attach the popup menu to a toggle button programatically.
myMenu.addToggler(myTogglerButton, {
// options
},
'click' // custom trigger event
); 5. All default options.
const myMenu = new TinyPopupMenu({
// or 'top'
position: "bottom",
// additional CSS class
className: '',
// only one popup menu is activated at a time
autoClose: true,
// shows arrow indicator
arrow: true,
// custom margin
margin: 5,
// custom x/y offsets
offset: {
x: 0,
y: 0
},
// menu items here
menuItems: [],
// prevents the native click event
stopClick: true
}); 6. Events.
// triggered on open
myMenu.on('open', () => console.log('Open event'));
// triggered on close
myMenu.on('close', () => console.log('Close event'));
// triggered on update
myMenu.on('updateposition', () => console.log('Update position event')); v1.0.11 (05/14/2024)
v1.0.10 (08/03/2024)
v1.0.9 (09/14/2023)
v1.0.8 (09/14/2023)
The post Customizable Context Menus and Dropdowns With Vanilla JS – Tiny Popup Menu appeared first on CSS Script.
A newly disclosed security vulnerability in Microsoft Teams could allow attackers to spoof local devices,…
A critical security flaw has been discovered in SandboxJS, a widely used JavaScript sandboxing library…
Email filters are important, but they can’t remove phishing risk on their own. Today’s campaigns are built to…
Foxconn has officially confirmed a cyberattack targeting its North American operations after the Nitrogen ransomware…
INDIANAPOLIS (AP) — Reserved seating for this year’s Indianapolis 500, the world’s largest single-day sporting…
INDIANAPOLIS (AP) — Reserved seating for this year’s Indianapolis 500, the world’s largest single-day sporting…
This website uses cookies.