欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Javascript自定义右键菜单

程序员文章站 2022-05-30 20:55:17
...

html Javascript自定义右键菜单

内容需要的技术要点

  1. BOM的操作
  2. 鼠标事件
  3. css

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{padding: 0;
            margin: 0;}
        ul{
            width: 200px;
            background-color: #2aabd2;
            list-style: none;
            
            
            line-height: 30px;
        }
        ul li{
            color: #ffffff;
            height: 30px;
            padding: 5px 10px;
            transiton:0.3s;

        }
        ul li:hover{
            color: #122b40;
            background-color: #afd9ee;
            cursor:pointer
        }

    </style>
</head>

这里我在设置一下菜单的样式让我的菜单好看一点

<body>
    <ul>
        <li>HTML弹窗</li>
        <li>HTML百度一下的网页</li>
        <li>HTML百度一下写在这里</li>
        <li>HTML关闭窗口</li>
    </ul>

Javascript自定义右键菜单

这里我们看到在 右上角 我们想到 需要 获取鼠标的位置
第一步需要
禁用系统的右键

 document.oncontextmenu =function(){
            return false;
第二步
在添加事件 右键抬起 设置 右键的设置为2
鼠标 左键为 0 滚轮键 为 1 右键 为 2

第三步
在 ul样式 display:none 设置ul 隐藏 和设置 鼠标位置

 display: none;
 position: absolute;

经过判断后 就能检测到鼠标的操作 在正常不显示 ul 右键后 显示 同时跟随鼠标位置

        document.onmouseup =function (eve) {
            if (eve.button==2){
                ul.style.display ='inline-block'
                ul.style.left =eve.clientX+'px'
                ul.style.top = eve.clientY+'px'
            }else{
                ul.style.display = 'none'
            }
        }
<script>
        var ul = document.querySelector('ul')
        document.oncontextmenu =function(){
            return false;
        }
        document.onmouseup =function (eve) {
            if (eve.button==2){
                ul.style.display ='inline-block'
                ul.style.left =eve.clientX+'px'
                ul.style.top = eve.clientY+'px'
            }else{
                ul.style.display = 'none'
            }
        }
        ul.onmousedown =function (eve) {
            if(eve.target.innerHTML =='HTML弹窗'){
                alert('HTML警示框')
            }else if(eve.target.innerHTML =='HTML百度一下写在这里'){
                    var han = prompt('搜索 请输入你的内容')
                    window.open('http://www.baidu.com/s?wd='+han)

            }else if (eve.target.innerHTML =='HTML关闭窗口'){
                    if(confirm('你确定要关闭窗口吗')){
                        window.close()
                    }
            }else{
				
            }
        }

    </script>

在 按下后的操作 就可以随你操作 了
Javascript自定义右键菜单