<style>
*{
margin: 0;
padding: 0;
}
ul{
list-style: none;
width: 200px;
padding: 10px;
border: 1px solid black;
display: none;
position: absolute;
}
ul li:hover{
background: skyblue;
}
</style>
<body>
<ul id="list">
<li class="aaa">111</li>
<li>222</li>
<li>333</li>
</ul>
<script>
document.addEventListener("contextmenu",function(evt){
evt.preventDefault()
list.style.display="block"
var x=evt.clientX
var y=evt.clientY
if(x>=document.documentElement.clientWidth-list.offsetWidth)
x=document.documentElement.clientWidth-list.offsetWidth
if(y>=document.documentElement.clientHeight-list.offsetHeight)
y=document.documentElement.clientHeight-list.offsetHeight
list.style.left=x+"px"
list.style.top=y+"px"
})
document.addEventListener("click",()=>{
list.style.display="none"
})
list.onclick=function(evt){
console.log(evt.target)
if(evt.target.className==="aaa"){
console.log(111)
}
}
</script>
</body>
注意:右键单击出现自定义菜单,左击消失