• JavaScript实现自定义右键菜单


    JavaScript实现自定义右键菜单,思路如下:

    1. 屏蔽默认右键事件;

    2. 隐藏自定义的菜单模块(如div、ul等);

    3. 右键点击特定或非特定区域,显示菜单模块;

    4. 再次点击,隐藏菜单。

    明确了思路,下面给出相关代码:

    HTML:

     1 <!--Right Click Menu-->  
     2 <div id="background">Click Here</div>
     3 <div class="right-menu" id="right-menu">  
     4     <ul>  
     5         <b>选择类型:</b>  
     6     </ul>  
     7     <div align="center">  
     8         <a href='javascript:;' value="01">拼接视频文件</a>  
     9         <a href='javascript:;' value="02">拼接图片文件</a>  
    10         <a href='javascript:;' value="03">拼接字幕文件</a>  
    11         <a href='javascript:;' value="04">流媒体文件</a>  
    12         <a href='javascript:;' value="05">图片文件</a>  
    13         <a href='javascript:;' value="06">字幕文件</a>  
    14         <a href='javascript:;' value="07">动画文件</a>  
    15         <a href='javascript:;' value="08">字体文件</a>  
    16         <a href='javascript:;' value="09">音视频文件</a>  
    17     </div>  
    18 </div>  

    JavaScript:

     1 window.onload = function(){  
     2     var forRight = document.getElementById("right-menu");  
     3     document.getElementById("background").oncontextmenu = function(event){  
     4         var event = event || window.event;  
     5         //显示菜单  
     6         forRight.style.display = "block";  
     7         //菜单定位  
     8         forRight.style.left = event.pageX+"px";  
     9         forRight.style.top = event.pageY+"px";  
    10         //return false为了屏蔽默认事件  
    11         return false;  
    12     };  
    13     //再次点击,菜单消失  
    14     document.onclick=function(){  
    15         forRight.style.display = "none";  
    16     };  
    17 };  

    CSS:

     1 #background {
     2     background-color: #4db3a2;
     3     width: 500px;
     4     height: 300px;
     5 }
     6 .right-menu {
     7     position: absolute;
     8     z-index: 99999;
     9     overflow: hidden;
    10     width: 150px;
    11     background-color: #FFFFFF;
    12     border: dimgray 1px solid !important;
    13     font-size: 14px;
    14     list-style-type: none;
    15     display: none;
    16 }
  • 相关阅读:
    bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
    bzoj3504: [Cqoi2014]危桥 网络流
    bzoj1588: [HNOI2002]营业额统计 splay瞎写
    bzoj1008快速面
    洛谷1212手动枚举各种情况(缩代码成瘾)
    bzoj1968真·想sha法bi题
    bzoj3674同上(好短)
    bzoj3673可持久化线段树实现可持久化数组实现可持久化并查集(好长)
    uoj98未来程序改 纯暴力不要想了
    bzoj3680模拟退火
  • 原文地址:https://www.cnblogs.com/sunlinan/p/6547501.html
Copyright © 2020-2023  润新知