JS右键单击事件,在我们前端写页面时使用的并不太频繁。
JavaScript实现自定义右键菜单,设计思路如下:
1. 屏蔽默认右键事件;
2. 隐藏自定义的菜单模块;
3. 右键点击特定或非特定区域,显示菜单模块;
4. 再次点击,隐藏菜单。
老规矩先上效果图。
效果图:

HTML结构:
<div?id="btn"></div> <div?id="right-menu">?? <span>ID:75</span> <span>大小:16KB</span> <span>用户:admin/admin</span> <span>状态:可用</span> <span>操作:删除</span> </div>
html代码相对比较简单,其实就两个容器。一个用来被点击,一个用于显示右键菜单。
CSS代码:
#btn {
background-color: #4db3a2;
width: 100px;
height: 100px;
}
#right-menu {
position: absolute;
z-index: 99999;
overflow: hidden;
width: 150px;
padding:5px;
background-color: #fff;
border: 1px solid #dfdfdf;
display: none;
}
#right-menu span{
display:block
}
css代码侧重点在于#right-menu中的定位以及隐藏。
window.onload = function(){
var forRight = document.getElementById("right-menu");
document.getElementById("btn").oncontextmenu = function(event){
var event = event || window.event;
//显示菜单
forRight.style.display = "block";
//菜单定位
forRight.style.left = event.pageX+"px";
forRight.style.top = event.pageY+"px";
//return false为了屏蔽默认事件
return false;
};
//再次点击,菜单消失
document.onclick=function(){
forRight.style.display = "none";
};
};
另:这里我写的这个是针对一个事件,如果是复数的,可以利用for循环。
星之书笔记