用 window.oncontextmenu实现,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
* {
margin: 0;
padding: 0;
}
ul {
list-style-type: none;
position: absolute;
width: 180px;
background-color: #fff;
border: 1px solid rgb(211, 211, 211);
padding: 4px 0;
display: none;
}
ul li {
margin-bottom: 4px;
border-bottom: 1px solid rgb(211, 211, 211);
padding: 0 16px;
line-height: 30px;
height: 30px;
}
ul li:last-child {
margin-bottom: 0;
border-bottom: none;
}
ul>li>a:first-child {
float: left;
}
ul>li>a:last-child {
float: right;
color: rgb(156, 156, 156);
}
a {
text-decoration: none;
font-size: 12px;
color: #333;
}
.clearfix::after {
display: block;
content: '';
clear: both;
}
</style>
</head>
<body>
<ul class="menu">
<li class="clearfix">
<a href="#">查看</a>
<a href="#">F1</a>
</li>
<li class="clearfix">
<a href="#">返回</a>
<a href="#">Alt+向右箭头</a>
</li>
<li class="clearfix">
<a href="#">重新加载</a>
<a href="#">Ctrl+r</a>
</li>
<li class="clearfix">
<a href="#">另存为</a>
<a href="#">Ctrl+s</a>
</li>
<li class="clearfix">
<a href="#">打印</a>
<a href="#">Ctrl+p</a>
</li>
<li class="clearfix">
<a href="#">查看网页源代码</a>
<a href="#">Ctrl+u</a>
</li>
<li class="clearfix">
<a href="#">检查</a>
<a href="#">Ctrl+shift+r</a>
</li>
</ul>
<script>
//单击鼠标右键,显示菜单
var ul = document.getElementsByClassName('menu')[0]
// console.log(ul)
window.oncontextmenu = function(e){
// alert(1)
e.preventDefault()//阻止鼠标默认事件
var e = e || window.event
ul.style.display = 'block'
ul.style.left = e.clientX + 'px'
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
ul.style.top = e.clientY + scrollTop + 'px'//当滑动滚动条时也能准确获取菜单位置
}
</script>
</body>
</html>
网友回复