这是一款基于bootstrap的jquery右键菜单插件。该bootstrap右键菜单使用Bootstrap dropdown组件来制作,并通过tether插件进行定位,具有多级菜单,灵活,响应式等特点。
使用方法
在页面中引入jquery,bootstrap相关文件,font-awesome字体文件,以及jquery右键菜单插件jquery.context-menu.min.js。
<link rel="stylesheet" href="path/to/bootstrap.min.css"> <link rel="stylesheet" href="path/to/font-awesome.min.css"> <link rel="stylesheet" href="path/to/tether.min.css"> <script src="path/to/jquery.min.js"></script> <script src="path/to/bootstrap.min.js"></script> <script src="path/to/tether.min.js"></script> <script src="path/to/jquery.context-menu.min.js"></script>
CSS样式
为该bootstrap右键菜单添加下面的必要的CSS样式。
.context-menu.dropdown-menu { display: block; left: 0px; opacity: 0; position: absolute; top: 0px; transition: visibility 0s 0.1s, opacity 0.1s linear; visibility: hidden; } .context-menu.dropdown-menu.open { visibility: visible; opacity: 1; transition: opacity 0.1s linear; } .context-menu.dropdown-menu a { cursor: pointer; } .dropdown-submenu .dropdown-toggle:after { content: "\f0da"; display: inline-block; float: right; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; padding-top: 3px; text-rendering: auto; -webkit-font-smoothing: antialiased; } .dropdown-submenu .dropdown-menu { top: 0; left: 100%; } #cnxt-cursor { height: 0px; opacity: 0; position: absolute; visibility: hidden; width: 0px; }
初始化插件
右键菜单的内容通过js来设置,这样在更换右键菜单时,不需要更改DOM元素,提高插件的灵活度。下面的js代码定义了一个右键菜单。
let _menuItems = [ { type: "title", text: "Modifica" }, { type: "item", icon: "clone", text: "复制", key: "copy", action: _debug }, { type: "item", icon: "scissors", text: "剪切", key: "cut", action: _debug }, { type: "item", icon: "clipboard", text: "粘贴", key: "paste", action: _debug }, { type: "divider" }, { type: "submenu", text: "附件...", items: [ { type: "title", text: "附件..." }, { type: "item", icon: "phone", text: "电话", key: "phone", action: _debug }, { type: "item", icon: "home", text: "联系地址", key: "addresses", action: _debug }, { type: "item", icon: "globe", text: "Browser", key: "browser", action: _debug }, { type: "item", icon: "envelope-o", text: "电子右键", key: "mail", action: _debug }, { type: "item", icon: "calendar", text: "Calendario", key: "calendar", action: _debug }, { type: "item", icon: "clock-o", text: "Orologio", key: "clock", action: _debug }, { type: "item", icon: "calculator", text: "Calcolatrice", key: "calc", action: _debug } ] }, { type: "submenu", text: "Condividi con...", items: [ { type: "title", text: "Condividi con..." }, { type: "item", icon: "google-plus-official", text: "Google+", key: "google_plus", action: _debug }, { type: "item", icon: "facebook-official", text: "Facebook", key: "facebook", action: _debug }, { type: "item", icon: "twitter", text: "Twitter", key: "twitter", action: _debug } ] }, { type: "divider" }, { type: "title", text: "Pagina" }, { type: "item", icon: "refresh", text: "Ricarica", action: function() { window.location.reload(); } }, { type: "item", icon: "home", text: "Torna alla home", action: function() { window.location.href = "/"; } } ];
在页面DOM元素加载完毕之后,通过下面的方法来初始化该bootstrap右键菜单插件。
$(window).contextMenu({ items: _menuItems });
该bootstrap右键菜单插件的github地址为:https://github.com/Byloth/jQuery.ContextMenu.js