<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>右键菜单</title>
</head>
<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">1111</li>
<li class="bbb">2222</li>
<li class="ccc">3333</li>
<li class="ddd">4444</li> </ul>
<script>
document.addEventListener("contextmenu",function(evt){
evt.preventDefault()
list.style.display="block"
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 } var x=evt.clientX
var y=evt.clientY
list.style.left=x + "px"
list.style.top=y + "px"
})
document.addEventListener("click",()=>{
list.style.display="none" })
list.onclick=function(evt){
console.log("list",evt.target)
if(evt.target.className==="aaa"){
console.log(111111)
}
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>右键菜单</title>
</head>
<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">1111</li>
        <li class="bbb">2222</li>
        <li class="ccc">3333</li>
        <li class="ddd">4444</li>
    </ul>
    <script>
       document.addEventListener("contextmenu",function(evt){
       evt.preventDefault()
       list.style.display="block"
     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
     }
       var x=evt.clientX
       var y=evt.clientY
       list.style.left=x + "px"
       list.style.top=y + "px"
       })
    document.addEventListener("click",()=>{
    list.style.display="none"
     })
    list.onclick=function(evt){
        console.log("list",evt.target)
        if(evt.target.className==="aaa"){
           console.log(111111)
        }
    }
    </script>
</body>
</html>

最新文章

  1. ORA-01102: cannot mount database in EXCLUSIVE mode
  2. Data Structure 之 最优二叉树
  3. Project Euler 98:Anagramic squares 重排平方数
  4. c语言学习之第四章
  5. Springmvc加载静态文件和开启EL表达式的支持
  6. 《数字图像处理原理与实践(MATLAB版)》一书之代码Part6
  7. WinSock 异步I/O模型-2
  8. 解决 IIS 反向代理ARR URLREWRITE 设置后,不能跨域跳转 return Redirect 问题
  9. map、filter、reduce函数
  10. call 和 apply 的区别
  11. Java中的参数传递 --Java
  12. go语言使用go-sciter创建桌面应用(四) 固定窗口大小
  13. c# 限制同时启动多个实例程序运行
  14. css hover使用条件
  15. 互评Beta版本——Thunder组爱阅app(探路者团队测评)
  16. python2(中文编码问题):UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0x?? in position 1
  17. 简单工厂模式(simple factory pattern)
  18. memcached 学习笔记 3
  19. OCP新题库,052新加的考题及答案整理-24题
  20. BZOJ 3289 Mato的文件管理(莫队+树状数组)

热门文章

  1. Switchquery:移动端秒级配置触达平台
  2. redis(13)持久化操作-AOF
  3. AI绘画--tag资源
  4. Python elasticsearch 报错及解决方法
  5. 【2】APP自动化-脚本研发2.0-3.0需要重复看视频
  6. 第八周作业-N67044-张铭扬
  7. MySQL的Temporary Files存放路径
  8. Solidity8.0-03
  9. Stanford NLP 在Python环境中安装、介绍及使用
  10. CSS主要整理