本文提供了一段JavaScript代码,用于在网页中模拟鼠标右键菜单效果。通过监听鼠标事件,可以自定义显示位置和样式,适用于需要增强交互体验的Web项目。
JavaScript实现自定义右键菜单功能
本文分享了一段JavaScript代码,用于实现鼠标右键菜单的模拟功能,供读者参考。
效果展示如下:

具体实现代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>右键菜单</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#menu{
width: 254px;
/*background-color: #ccc;*/
font-size: 12px;
position: fixed;
top: 0px;
left: 0px;
/*height: 240px;*/
/*padding-left: 26px;*/
padding-top: 2px;
border:1px solid #ccc;
display: none;
}
#menu li{
list-style: none;
line-height: 25px;
margin-left: -1px;
padding-left: 26px;
}
#menu li:hover{
background-color: #4281f4;
color: #fff;
}
</style>
</head>
<body>
<ul id="menu">
<li>返回(B)</li>
<li>前进(F)</li>
<li>从新加载(R)</li>
<li>另存为(A)</li>
<li>打印(P)</li>
<li>查看网页源代码(V)</li>
<li>查看网页信息(I)</li>
<li>审查元素(N)</li>
</ul>
<script type="text/javascript">
var menu = document.getElementById("menu");
document.oncontextmenu =function(e){
var e = e ||window.event;//兼容
console.log(e.clientX,e.clientY);
console.log(e);
//单击显示div
menu.style.display = "block";
//设置定义
//判断鼠标坐标是否大于视口宽度-块本身宽度
var cakLeft = (e.clientX > document.documentElement.clientWidth - menu.offsetWidth)?(document.documentElement.clientWidth - menu.offsetWidth):e.clientX;
var cakTop = (e.clientY > document.documentElement.clientHeight - menu.offsetHeight)?(document.documentElement.clientHeight - menu.offsetHeight):e.clientY;
menu.style.left = cakLeft + "px";
menu.style.top = cakTop + "px";
return false;
}
menu.onclick = function(e) {
var e = e || window.event;
e.cancelBubble = true;
//阻止冒泡。
}
document.onclick = function() {
menu.style.display = "none";
}
</script>
</body>
</html>
希望这段代码能帮助您更好地理解JavaScript程序设计。