1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <style>
- *{
- margin: 0;
- padding: 0;
- }
- li{
- list-style: none;
- }
- .menu-content{
- width: 200px;
- height: 300px;
- border:1px solid black;
- display: none;
- position: fixed;
- background-color: #fff;
- z-index: 10;
- }
- .menu-content ul li{
- height: 50px;
- line-height: 50px;
- padding-left: 20px;
- border-bottom: 1px solid black;
- }
- .mask{
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: rgba(0,0,0,0.5);
- display: none;
- }
- </style>
- </head>
- <body>
- <div class="menu-content">
- <ul>
- <li>菜单项一</li>
- <li>菜单项二</li>
- <li>菜单项三</li>
- <li>菜单项四</li>
- </ul>
- </div>
- <div class="mask"></div>
- <script>
- // 第一步获取要控制的元素
- // 获取菜单
- var oMenu = document.getElementsByClassName("menu-content");
- oMenu = oMenu[0];
- // 获取整个文档
- var oDoc = document.documentElement;
- // 获取半透明蒙版
- var oMask = document.getElementsByClassName("mask");
- oMask = oMask[0];
- // 第二步绑定事件 为文档绑定事件 控制菜单显示
- oDoc.oncontextmenu = function(e){
- // 第三部控制菜单栏显示
- oMenu.style.display = "block";
- // 控制蒙版显示
- oMask.style.display = "block";
- // 获取鼠标点击位置 通过事件对象
- var x = e.clientX;
- var y = e.clientY;
- console.log(x,y);
- // 第四步 设置菜单栏位置
- oMenu.style.top = y + "px";
- oMenu.style.left = x + "px";
- return false;
- }
- // 第五步控制菜单隐藏
- oMask.onclick = function(){
- // 控制菜单栏隐藏
- oMenu.style.display = "none";
- // 控制蒙版隐藏
- oMask.style.display = "none";
- }
- </script>
- </body>
- </html>
|