New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@htmlos/contextmenu

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@htmlos/contextmenu

contextmenu for html5

latest
Source
npmnpm
Version
0.1.26
Version published
Maintainers
1
Created
Source

Html5 ContextMenu

npm

A simple and easy-to-use contextmenu library for html5

Preview Demo https://htmlos.github.io/ContextMenu/

Features

  • Supports html5, vue, react and other frameworks
  • Support infinite submenu
  • Support menu item click event callback
  • Support menu item disabled
  • Support menu item icon
  • Support menu item hotkey description
  • Support auto fixed position (keep all menus visible in browser visible area)
  • Support auto hide (when clicking outside area of ​​menu/adjusting browser window size/scrolling page/pressing ESC)
  • Support custom css style & animation

Browser Compatibility

BrowserChromeFireFoxIEEdgeSafariOpera
Version2721912615

Usage

  • Install
# npm
npm i @htmlos/contextmenu

# yarn
yarn add @htmlos/contextmenu
  • Import
import {ContextMenu, ContextMenuOptions} from "@htmlos/contextmenu";
import "@htmlos/contextmenu/dist/contextmenu.css";
  • Custom style: please refer to contextmenu.css

    • Internally use position: fixed, which will cause some styles of some elements to be invalid (such as .contextmenu and .contextmenu-item of margin, need to use padding adjustment)
    • Don't use animation attribute for .contextmenu, this may not only be invisible during the loading process, but also affect the subsequent automatic positioning
    • Do not use animations that affect the size. If used, it may cause typographical disturbances, because the menu is already fixed size after being visible
    • Other attributes please test by yourself
  • Config:

// ContextMenu.config(options: ContextMenuOptions);
ContextMenu.config({
  i18n: function(s){
    return your_translate_function(s) || s;
  },
  style: {
      // custom animation: [string, number] => [className, duration],
      // defaults to [ "contextmenu-in", 0], [ "contextmenu-out", 0]
      contextmenuIn: ['fade-in', 200],
      contextmenuOut: ['fade-out', 200],
  },
});
  • Show
const menu=[
  { // item
    name: "reload",
    icon: "./reload.png",
    disabled: false,
    onclick: ()=>{},
    hotkey: "ctrl+r",
    children: [
      //...
    ]
  },
  {}, // divider
  //...
]

menu[0].children=menu; // nested infinite submenu

Contextmenu.show(menu);
  • Hide
// auto hide or manually
Contextmenu.hide();

Build

sudo npm config set registry https://registry.npm.taobao.org
# sudo npm i -g npm-check-updates
ncu -u
sudo npm config set registry https://registry.npmjs.org

yarn config set disturl https://npm.taobao.org/dist -g
yarn config set electron_mirror https://npm.taobao.org/mirrors/electron/ -g
yarn config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/ -g
yarn config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/ -g
yarn config set chromedriver_cdnurl https://cdn.npm.taobao.org/dist/chromedriver -g
yarn config set operadriver_cdnurl https://cdn.npm.taobao.org/dist/operadriver -g
yarn config set fse_binary_host_mirror https://npm.taobao.org/mirrors/fsevents -g

yarn install
yarn build

License

MIT

Keywords

contextmenu

FAQs

Package last updated on 10 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts