【自定义右键菜单】(html,css,js)

该代码示例展示了如何使用CSS和JavaScript创建一个自定义的右键菜单。当用户在页面上右键点击时,会显示一个200px宽的菜单列表,列表项在鼠标位置附近定位。左键点击时,菜单消失。菜单项的样式在鼠标悬停时改变,且如果菜单超出屏幕边界,会自动调整位置。点击事件用于识别用户是否点击了特定类名的列表项。
摘要由CSDN通过智能技术生成
<style>
    *{
        margin: 0;
        padding: 0;
    }
    ul{
        list-style: none;
        width: 200px;
        padding: 10px;
        border: 1px solid black;
        display: none;
        position: absolute;
    }
    ul li:hover{
        background: skyblue;
    }
</style>
<body>
    <ul id="list">
        <li class="aaa">111</li>
        <li>222</li>
        <li>333</li>
    </ul>
    <script>
        document.addEventListener("contextmenu",function(evt){
            evt.preventDefault()
            list.style.display="block"
            var x=evt.clientX
            var y=evt.clientY
            if(x>=document.documentElement.clientWidth-list.offsetWidth)
            x=document.documentElement.clientWidth-list.offsetWidth
            if(y>=document.documentElement.clientHeight-list.offsetHeight)
            y=document.documentElement.clientHeight-list.offsetHeight
            list.style.left=x+"px"
            list.style.top=y+"px"
        })
        document.addEventListener("click",()=>{
            list.style.display="none"
        })
        list.onclick=function(evt){
            console.log(evt.target)
            if(evt.target.className==="aaa"){
                console.log(111)
            }

        }
    </script>
</body>

注意:右键单击出现自定义菜单,左击消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王猫粮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值