这是一款基于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 0 s 0.1 s, opacity 0.1 s linear; visibility : hidden ; } .context-menu.dropdown-menu.open { visibility : visible ; opacity : 1 ; transition : opacity 0.1 s 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