zoukankan      html  css  js  c++  java
  • js之自定义右键菜单

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>自定义右键菜单</title>
    <style>
    body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{
        margin: 0;
        padding: 0;
    }
    body{
        font-family:"Mrcrosoft Yahei",Arial;
    }
    ul,ol{
        list-style: none;
    }
    a{
        text-decoration: none;
    }
    img{
        border:none;
    }
        .menu{
             100px;
            background: #9ff;
            position: absolute;
            left: -100%;
        }
        .uls li{
            border-bottom: 1px solid black;
            padding: 5px 0 0 5px;
            border-right: 1px solid black;
            border-left: 1px solid black;
        }
        .uls li:hover{
            background:#f9f ;
        }
        .uls li:hover a{
            color:#ff9 ;
        }
        .uls li:first-child{
            border-top: 1px solid black;
        }
        .uls a{
            display: block;
        }
    </style>
    </head>
    <body>
        <!-- 书写自定义菜单样式 -->
        <div class="menu">
            <ul class="uls">
                <li><a href="数码时钟.html">数码时钟</a></li>
                <li><a href="留言板.html">留言板</a></li>
                <li><a href="进度条.html">进度条</a></li>
                <li><a href="随机生成二维码.html">二维码</a></li>
                <li><a href="吸顶效果.html">吸顶效果</a></li>
                <li><a href="隔行换色.html">隔行换色</a></li>
            </ul>
        </div>
        <script>
             //严格模式
            'use strict';
            //创建一个方法解决获取类名时的兼容性问题
            function byClassName(sClassName){
                if(document.getElementsByClassName){
                    return document.getElementsByClassName(sClassName);
                }else{
                    找到所有的元素
                    var allTagName = document.getElementsByTagName('*');
                    // 然后遍历
                    var result = [];
                    for(var i = 0;i < allTagName.length; i++){
                        // 因为一个页面中可能存在多个相同类名
                        if(allTagName[i].className ==sClassName){
                            result.push(allTagName[i]);
                        }                    
                    }return result;
                    
                }
            }
            var oMenu = byClassName('menu')[0];
            document.oncontextmenu = function(ev){
        
                // 获取事件对象
                var  e = ev || window.event;
                var iL = e.clientX,
                    iT = e.clientY;
                    oMenu.style.left = iL + 'px';
                    oMenu.style.top = iT + 'px';
                // 当点击浏览器任意地方时,让菜单消失
                document.onclick = function(){
                    oMenu.style.left = '-100%';
                }
                //阻止浏览器的默认行为
                return false;
            }
        </script>
    </body>
    </html>
    

      

     
  • 相关阅读:
    vue 使用 <iframe> 嵌入网页 地址实现动态配置
    vue 视频播放 vue-video-player
    vue 实现自定义序号, 并且翻页序号累加。
    关于 vue 使用 Handsontable 表格数据导出
    node.js Stream流的使用
    手把手教如何搭建node+egg项目 引入Sequelize
    实现 通过数据库里一个字段值相等 则把 他合为一条数据
    最近在项目中碰到把对象数组转为键值对,
    js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip
    for循环
  • 原文地址:https://www.cnblogs.com/bgwhite/p/9476338.html
Copyright © 2011-2022 走看看