tnblog
首页
视频
资源
登录

jQuery右击自定义显示菜单+自定义换肤

3977人阅读 2018/11/28 15:18 总访问:148239 评论:0 收藏:0 手机
分类: 前端

结合右击显示菜单来做的

效果图:

代码:

<!doctype html>  
<html>  
    <head>  
        <meta charset="gbk">  
        <title>百度换肤</title>  
        <!--css,js-->  
        <style type="text/css">  
            *{margin:0;padding:0;}  
            img{border:none;margin:0px 1px 1px 0px;}  
            body{background:url("images/1.jpg") no-repeat;position:relative;  
                font-family:"微软雅黑";font-size:16px;}  
            .huanfu{width:100%;height:200px;background:#ececec;position:absolute;top:0px;left:0px;  
                display:none;z-index:2;}  
            .huanfu .hf_img{width:590px;height:180px;border:0px solid red;margin:0px auto;}  
            .huanfu .hf_img .one{width:196px;height:180px;background:;float:left;}  
            .huanfu .hf_img .two{width:98px;height:180px;background:;float:left;}  
            .huanfu .hf_img a:hover img{opacity:0.7;filter:alpha(opacity==70);}  
            .huanfu .hf_img img{float:left;position:relative;}  
            .menu{width:186px;background:#fff;box-shadow:1px 1px 35px #ccc;display:none;  
                position:absolute;z-index:3;}  
            .menu ul li{list-style:none;border:0px solid red;line-height:38px;padding-left:16px;  
                border-bottom:1px solid #ddd;cursor:pointer;}  
            .menu ul li:hover{background:#647E7C;color:#fff;}  
            #zb{font-size:40px;color:#fff;text-align:center;}  
            .text{width:470px;height:300px;margin:0px auto;background:#e8e8e8;position:absolute;  
                background-color: rgba(255,255,255,0.3);border-radius:4px;z-index:1;top:150px;  
                left:35%;}  
            .text p{font-weight:500;color:#000;font-size:20px;}  
            ::selection {background:#006200; color:#fff;}  
        </style>  
  
    </head>  
    <body>  
        <!--huanfu start-->  
            <div class="huanfu">  
                <div class="hf_img">  
                    <div class="one">  
                        <a href="#">  
                            <img src="images/1-1.jpg" width="195" height="119" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/2-2.jpg" width="97" height="59" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/3-3.jpg" width="97" height="59" alt=""/>  
                        </a>  
                    </div>  
                    <div class="two">  
                        <a href="#">  
                            <img src="images/3-3.jpg" width="97" height="59" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/4-4.jpg" width="97" height="59" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/5-5.jpg" width="97" height="59" alt=""/>  
                        </a>  
                    </div>  
                    <div class="one">  
                        <a href="#">  
                            <img src="images/8-8.jpg" width="97" height="59" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/9-9.jpg" width="97" height="59" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/7-7.jpg" width="195" height="119" alt=""/>  
                        </a>  
                    </div>  
                    <div class="two">  
                        <a href="#">  
                            <img src="images/10-10.jpg" width="97" height="59" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/11-11.jpg" width="97" height="59" alt=""/>  
                        </a>  
                        <a href="#">  
                            <img src="images/12-12.jpg" width="97" height="59" alt=""/>  
                        </a>  
                    </div>  
                </div>  
            </div>  
        <!--end huanfu-->  
        <!--menu start-->  
            <div class = "menu">  
                <ul>  
                    <li onclick = "jy_menu(0)">打开</li>  
                    <li class = "button">换肤</li>  
                    <li class = "refresh">刷新(R)</li>  
                    <li onclick = "jy_menu(3)">复制(C)</li>  
                    <li onclick = "jy_menu(4)">粘贴(V)</li>  
                    <li onclick = "jy_menu(5)">注销</li>  
                    <li onclick = "jy_menu(6)">打印(I)...</li>  
                </ul>  
            </div>  
        <!--end menu-->  
        <div class = "text">  
            <p>只实现了刷新和换肤的功能^o^;选中文字的背景色是绿色!!!</p>  
        </div>  
        <p id = "zb"></p>  
        <script type="text/javascript" src="../js/jquery-1.11.1.min.js"></script>  
        <script type="text/javascript">  
        //首先屏蔽到浏览器自带的右键功能  
        document.oncontextmenu = function(){  
            return false;  
        };  
        //点击鼠标三键  
        $(document).mousedown(function(e){  
            //1是左键;2是中间键;3是右键  
            var key = e.which;  
            if(key == 3){  
                var x = e.clientX; //x坐标  
                var y = e.clientY; //y坐标  
                //获取menu的长宽  
                var menuHeight = $(".menu").height();  
                var menuWidth = $(".menu").width();  
                //获取浏览器的可见长宽  
                var clintHeight = getClientHeight();  
                var clintWidth = getClientWidth();  
                //判断  
                if(menuHeight + y >= clintHeight){  
                    y = clintHeight - menuHeight - 8;  
                }  
                if(menuWidth + x >= clintWidth){  
                    x = clintWidth - menuWidth - 8;  
                }  
                //$("#zb").html("x= " + x + "<br />y=" + y);显示坐标像素  
                //之前必须要绝对定位才行  
                $(".menu").show().css({left:x,top:y});  
  
            }  
        });  
  
        //点击空白隐藏鼠标右键  
        $(document).click(function(){  
            $(".menu").hide();  
        });  
  
        //响应事件  
        function jy_menu(i){  
            alert(i);  
        }  
        // 浏览器的可见高度  
        function getClientHeight() {  
            var clientHeight = 0;  
            if (document.body.clientHeight && document.documentElement.clientHeight) {  
                clientHeight = (document.body.clientHeight < document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight;  
            } else {  
                clientHeight = (document.body.clientHeight > document.documentElement.clientHeight) ? document.body.clientHeight: document.documentElement.clientHeight;  
            }  
            return clientHeight;  
        }  
  
        // 浏览器的可见宽度  
        function getClientWidth() {  
            var clientWidth = 0;  
            if (document.body.clientWidth && document.documentElement.clientWidth) {  
                clientWidth = (document.body.clientWidth < document.documentElement.clientWidth) ? document.body.clientWidth: document.documentElement.clientWidth;  
            } else {  
                clientWidth = (document.body.clientWidth > document.documentElement.clientWidth) ? document.body.clientWidth: document.documentElement.clientWidth;  
            }  
            return clientWidth;  
        }  
          
        $(function(){  
            //点击显示  
            $(".button").click(function(e){  
                $(".huanfu").slideToggle("slow");  
                // 不在派发事件  
                e.stopPropagation();  
            });  
            $(".huanfu .hf_img a").click(function(e){  
                // 用正则表达式将1-1.jpg 换成1.jpg  
                var src=$(this).find("img").attr("src").replace(/-\d*/,"");  
                // 修改样式  
                $("body").css("background","url("+src+")");  
                e.stopPropagation();  
            });  
            // 点击任意地方隐藏  
            $(document).click(function(e){  
                $(".huanfu").slideUp("slow");  
                e.stopPropagation();  
            });  
        });  
          
        </script>  
    </body>  
</html>

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价
真正的顺其自然,其实是竭尽所能之后的不强求,而非两手一摊的不作为
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术