Easy-to-use context-menu for your website or web-app.
Name | Description | Link |
---|---|---|
Basic demo | basicContext works with all kind of events | Try it on CodePen |
Position demo | basicContext never leaves the visible screen-area | Try it on CodePen |
Scroll demo | basicContext is scrollable when the context height is bigger than the browser height | Try it on CodePen |
Custom close function demo | basicContext lets you define a custom close function | Try it on CodePen |
Custom position demo | basicContext accepts an object with custom coordinates | Try it on CodePen |
jQuery demo | Use basicContext with the jQuery Event Object | Demo |
- Works in all modern browsers
- Written in Vanilla JS
- CommonJS and AMD support
- Layout and theme are separated CSS-files. This makes it easy to style our own context.
- Stays within the viewport and never opens outside the visible screen-area (Demo)
- Scrollable, when the height of the context-menu is bigger than the height of the browser (Demo)
basicContext is written in Vanilla JS and only dependents on the following browser APIs:
All of these APIs are capable of being polyfilled in older browser. Check the linked resources above to determine if you must polyfill to achieve your desired level of browser support.
We recommend to install basicContext using Bower or npm.
bower install basicContext
npm install basiccontext
Include the CSS-files in the head
and the JS-file at the end of your body
:
<link rel="stylesheet" href="dist/basicContext.min.css">
<link rel="stylesheet" href="dist/themes/default.min.css">
<script src="dist/basicContext.min.js"></script>
Skip the JS-file if you want to use basicContext as module together with Browserify:
let basicContext = require('basiccontext')
Show a context-menu by using the following command:
document.querySelector('.btn').addEventListener('click', function(e) {
let items = [
{ title: 'Add Sites', icon: 'ion-plus-round', fn: clicked },
{ title: 'Reset Login', icon: 'ion-person', fn: clicked },
{ title: 'Help', icon: 'ion-help-buoy', fn: clicked },
{ title: 'Disabled', icon: 'ion-minus-circled', fn: clicked, disabled: true },
{ title: 'Invisible', icon: 'ion-eye-disabled', fn: clicked, visible: false },
{ },
{ title: 'Logout', icon: 'ion-log-out', fn: clicked }
]
basicContext.show(items, e)
})
basicContext doesn't work properly with the normalized jQuery Event Object, but you can easily bypass this issue using e.originalEvent
:
$('.btn').on('click', function(e) {
let items = [
{ title: 'Add Sites', icon: 'ion-plus-round', fn: clicked },
{ title: 'Reset Login', icon: 'ion-person', fn: clicked },
{ title: 'Help', icon: 'ion-help-buoy', fn: clicked },
{ title: 'Disabled', icon: 'ion-minus-circled', fn: clicked, disabled: true },
{ title: 'Invisible', icon: 'ion-eye-disabled', fn: clicked, visible: false },
{ },
{ title: 'Logout', icon: 'ion-log-out', fn: clicked }
]
basicContext.show(items, e.originalEvent)
})
Layout and theme are separated CSS-files. This makes it easy to style your own context or to choose from the included themes.
Name | Preview | CSS-File | Demo |
---|---|---|---|
Default theme | CSS-File | Demo | |
Bright theme | CSS-File | Demo | |
Dark theme | CSS-File | Demo |
Include the following CSS-files to enhance the look and functionality of your contexts.
Name | Preview | CSS-File | Demo |
---|---|---|---|
PopIn effect | CSS-File | Demo | |
FadeIn effect | CSS-File | Demo |