设置自定义菜单

204 阅读1分钟

思路解析: 1、设置一个盒子

2、获取盒子

    var box = document.querySelector(".box")//只能绑定一定事件,多次绑定上一个会被覆盖'

3、阻止浏览器默认菜单

     box.oncontextmenu = function (e) {
        e.preventDefault()
        
        let meun = document.querySelector(".meun")
        if (meun) meun.remove()
        
        //创建自定义菜单
        meun = document.createElement("div")
        //给菜单添加样式
        meun.classList.add("meun")
        
    /.meun {
        width: 100px;
        height: 300px;
        background-color: #cccccc;
        position: absolute;
    }
        /
        //在盒子内添加菜单
        box.appendChild(meun)
        //设置菜单在鼠标位置出现
        meun.style.left = e.pageX + "px"
        meun.style.top = e.pageY + "px"
    }
    
    
    4、点击全局菜单消失,点击自身不消失
    
      window.onclick = function (e) {
        let meun = document.querySelector(".meun")
        if (meun && !meun.contains(e.target))
        {//判断菜单是否存在且点击的地方是否被菜单包含
        //存在且不在菜单点击内则删除菜单
            meun.remove()
        }


    }