美文网首页
js实例——自定义菜单

js实例——自定义菜单

作者: blank的小粉er | 来源:发表于2017-07-20 10:51 被阅读0次
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            body{
                font-size:16px;
            }
            ul{
                list-style:none;
                margin:0;
                padding:0;
            }
            a{
                text-decoration:none;
                color:#333;
            }
            .contextmenu{
                width:200px;
                border:1px solid #999;
                box-shadow: 3px 3px 3px #ccc;
                background: #fff;
                position: absolute;
                top:10px;
                left:10px;
                display: none;
            }
    
            .contextmenu li{
                height:38px;
                line-height:38px;
            }
            .contextmenu li a{
                display:block;
                padding:0 20px;
            }
    
            @media print{
                .contextmenu{
                    display: none;
                    opacity:0;
                }
            }
        </style>
    </head>
    <body>
        <h1>自定义右键菜单 -- onmosueover  onmosueout</h1>
        <hr>
        
        <div class="contextmenu" id="context">
            <ul>
                <li><a href="#">复制</a></li>
                <li><a href="#">粘贴</a></li>
                <li><a href="#">剪切</a></li>
                <li><a href="">刷新(F5)</a></li>
                <li><a href="#" onclick="window.print()">用快播打开</a></li>
            </ul>
        </div>
    
        <script>
            document.oncontextmenu = function(env){
                //获取事件对象
                var e = env || window.event;
    
                //获取 菜单元素
                var context = document.getElementById('context');
    
                //让菜单显示
                context.style.display = "block";
    
    
                //获取窗口的大小
                var w = window.innerWidth;
                var h = window.innerHeight;
    
    
                //获取鼠标的坐标
                var x = e.clientX;
                var y = e.clientY;
    
            
    
                //改变菜单的位置
                context.style.left = Math.min(w - 202, x) + 'px';
                context.style.top = Math.min(h - 192, y)+'px';
    
                return false;
            }
    
            document.onclick = function(){
                document.getElementById('context').style.display = "none";
            }
    
    
    
    
            //获取所有li集合
            var lis = document.getElementById('context').getElementsByTagName('li');
    
            //给每个li绑mouseover 事件
            for (var i = 0; i < lis.length; i ++) {
                lis[i].onmouseover = function(){
                    this.style.backgroundColor = "#ddd";
                    document.body.style.backgroundColor = "rgb("+(Math.floor(Math.random() * 256))+","+(Math.floor(Math.random() * 256))+","+(Math.floor(Math.random() * 256))+")";
                }
                lis[i].onmouseout = function(){
                    this.style.backgroundColor = "#fff";
                }
            }
    
        </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:js实例——自定义菜单

          本文链接:https://www.haomeiwen.com/subject/visdkxtx.html