fengchuanyu 3 settimane fa
parent
commit
b7dc1fff9a
1 ha cambiato i file con 89 aggiunte e 0 eliminazioni
  1. 89 0
      4-BOM&DOM/练习4_DOM右键菜单.html

+ 89 - 0
4-BOM&DOM/练习4_DOM右键菜单.html

@@ -0,0 +1,89 @@
+<!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>