原理:当用户点击鼠标右键的时候oncontextmenu事件被触发

js禁用鼠标右键菜单

window.oncontextmenu=function(e){
    e.preventDefault();
}

自定义鼠标右键菜单

html

<div id="menu">
            <div class="menu">功能1</div>
            <div class="menu">功能2</div>
            <div class="menu">功能3</div>
            <div class="menu">功能4</div>
            <div class="menu">功能5</div>
</div>

css

#menu{
    width: 0; /*设置为0 隐藏自定义菜单*/
    height: 125px;
    overflow: hidden; /*隐藏溢出的元素*/
    box-shadow: 0 1px 1px #888,1px 0 1px #ccc;
    position: absolute; /*自定义菜单相对与body元素进行定位*/
}
.menu{
    width: 130px;
    height: 25px;
    line-height: 25px;
    padding: 0 10px;
}

js

window.oncontextmenu=function(e){
    //取消默认右键
    e.preventDefault();

    //获取自定义右键菜单
    var menu=document.querySelector("#menu");

    //根据鼠标点击的位置进行定位
    menu.style.left=e.clientX+'px';
    menu.style.top=e.clientY+'px';

    //改变自定义菜单的宽
    menu.style.width='100px';
    menu.style.height='auto';
}

//鼠标左键单击, 就关闭右键菜单
window.onclick=function(e){
    document.querySelector('#menu').style.height=0;
}
最后修改:2024 年 12 月 30 日
如果觉得我的文章对你有用,请随意赞赏