fengchuanyu 1 day ago
parent
commit
f9ad7ecd21
1 changed files with 85 additions and 0 deletions
  1. 85 0
      4_BOM&DOM/练习题3_右键菜单.html

+ 85 - 0
4_BOM&DOM/练习题3_右键菜单.html

@@ -0,0 +1,85 @@
+<!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;
+        }
+        .mask{
+            width: 100vw;
+            height: 100vh;
+            background-color: #aaa;
+            position: fixed;
+            top: 0;
+            left: 0;
+            /* right: 0;
+            bottom: 0; */
+            display: none;
+        }
+        .menu{
+            width: 200px;
+            height: 300px;
+            background-color: #fff;
+            position: fixed;
+            top:0;
+            left:0;
+            display: none;
+        }
+        .menu li{
+            list-style: none;
+            border-bottom: 1px solid #ccc;
+            text-align: center;
+            padding: 10px 0;
+        }
+    </style>
+</head>
+<body>
+    <!-- 背景蒙板 -->
+    <div class="mask"></div>
+    <!-- 菜单 -->
+    <div class="menu">
+        <ul>
+            <li>复制</li>
+            <li>粘贴</li>
+            <li>删除</li>
+        </ul>
+    </div>
+    <script>
+        // 第一步:获取要控制的元素
+        var mask = document.getElementsByClassName("mask")[0];
+        var menu = document.getElementsByClassName("menu")[0];
+        // 获取整个文档页面
+        var doc = document.documentElement;
+        // 第二步:绑定事件
+        // 点击右键弹出菜单和背景蒙板
+        doc.oncontextmenu = function(event){
+            // 获取当前鼠标点击的位置
+            var x = event.clientX;
+            var y = event.clientY;
+            console.log(x,y)
+            // console.log("右键点击了");
+            // 显示背景蒙板 和 菜单
+            mask.style.display = "block";
+            menu.style.display = "block";
+
+            // 修改菜单位置
+            menu.style.left = x + "px";
+            menu.style.top = y + "px";
+            
+            // return false阻止默认事件 但return一定要写在代码最后
+            return false;
+        }
+
+        // 点击蒙板隐藏菜单
+        mask.onclick = function(){
+            // 隐藏背景蒙板 和 菜单
+            mask.style.display = "none";
+            menu.style.display = "none";
+        }
+    </script>
+</body>
+</html>