JS添加右键菜单

在前端开发的时候,会用到“右键菜单”,如给div添加右键菜单等,

示例:

代码如下:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
  
 <style type="text/css">
.s-move-content-outer{border:1px black solid;width:200px;height:200px;position:relative;outline:none;user-select:none;/*overflow:hidden;*/;}

.vpopmenu{
    position:absolute;
    width:200px;
    border-radius:5px;
    background-color:rgba(13,78,146,0.9);
    border:rgb(13,78,146);
    z-index:9999;
    padding:2px;
    display:none;
}
.vpopmenu>div{
    padding:2px 2px 2px 30px;
    height:24px;
}
.vpopmenu > div:hover {
    background-color:rgba(245, 239, 89, 0.30);
}
 </style>
 </head>
 <body>
 <div class="s-move-content-outer" tabIndex="1" >
    <div class="s-move-content-header">div1</div>
	<div>内容1</div>
</div>

<div id="r_menu" class="vpopmenu">
    <div id="menu_create" onclick="createMenu();">新增</div>
    <div id="menu_copy" onclick="copyMenu();">页内复制</div>
	<div id="menu_copy" onclick="delMenu();">删除</div>
</div>
 </body>
 <script type="text/javascript">
bindMenu();
var menu = document.getElementById("r_menu");
function bindMenu(){
	//给所有class=s-move-content-outer的div都加上右键菜单
	var $BIPanel = $("div[class='s-move-content-outer']").contextmenu(function(ev) {
		 var oEvent = ev || event;
		 //自定义的菜单显示
		 menu.style.display = "block";
		 //让自定义菜单随鼠标的箭头位置移动
		 menu.style.left = oEvent.clientX + "px";
		 menu.style.top = oEvent.clientY + "px";
		 //return false阻止系统自带的菜单,
		 //return false必须写在最后,否则自定义的右键菜单也不会出现
		 return false;  
		
	});
}

 //实现点击document,自定义菜单消失
 document.onclick = function() { 
	menu.style.display = "none";
 }
 </script>
</html>
发布了327 篇原创文章 · 获赞 566 · 访问量 263万+

猜你喜欢

转载自blog.csdn.net/vtopqx/article/details/89182527