• JGUI源码:右键菜单实现(12)


    1、要想实现右键菜单,就要先能响应右键函数

    $('#down').mousedown(function(e){ 
              if(3 == e.which){ 
                   alert('这是右键单击事件'); 
              }else if(1 == e.which){ 
                       alert('这是左键单击事件'); 
              } 
    })

    2、通过上面方法,虽然弹出了右键菜单,但是浏览器系统菜单也会出现。

    $('#down')[0].oncontextmenu = function ()
    {
        return false; 
    }

    3、如果单纯右键函数可以直接用第二种写法

      $('#context').contextmenu(function ()
        {
            alert('这是右键菜单事件'); 
            return false; 
        });

    4、如果再定义一个div层,在contextmenu把div层显示出来即形成一个菜单

    通常情况下,会使用ul,ol,dl实现,dl有前后级关系,但是大部分情况下都定义了,padding:0;margin:0会导致自动层级关系失效,所以使用ul,li实现。

    5、定义div

       <div class="jgui-menu">
        <ul> 
            <li class="jgui-menuitem">关闭当前标签</li> 
            <li class="jgui-menuitem">关闭其它标签</li> 
            <li class="jgui-menuitem">关闭左侧标签</li> 
            <li class="jgui-menuitem">关闭右侧标签</li> 
        </ul>
       </div>

    样式如下

    .jgui-menu
    {
        position:absolute;
        text-align: left;
        font-size: 16px;
        min- 180px;
        list-style: none;
        border- 1px; 
        border-color: #cccccc;
        box-shadow: 0 1px 4px rgba(0,0,0,.3);
        border-style: solid;
        box-sizing: border-box;
    }
    .jgui-menu .jgui-menuitem {
        padding: 10px;
        padding-left: 20px;
        color: #222222;
    }
    .jgui-menu .jgui-menuitem:hover {
        background-color : #22B581;
        color: white;
    }

    显示效果

    6、右键单击时弹出这个菜单,点击任意区域关闭

    <div id="menuclicktest" >4、点我弹出菜单</div>
       <div class="jgui-menu" id="testmenu">
        <ul> 
            <li class="jgui-menuitem" onclick="alert('a');">关闭当前标签</li> 
            <li class="jgui-menuitem">关闭其它标签</li> 
            <li class="jgui-menuitem">关闭左侧标签</li> 
            <li class="jgui-menuitem">关闭右侧标签</li> 
        </ul>
       </div>
    $('#menuclicktest').contextmenu(function ()
        {
            $('#testmenu').css("visibility","visible");
            //$('#testmenu').slideDown();//如果用这个需要设置display:none
            return false; 
        });
        $(document).click(function()
        {
            $('.jgui-menu').css("visibility","hidden");
        });

    如此基本就完成了。这个菜单是上下文菜单,固定于某个dom元素下方显示,如果全局右键菜单,则要判断当前鼠标位置,另外屏幕左右上下显示时还要考虑不遮挡,以后再优化。

    最终给Tab增加menu效果如下


    演示地址:

    http://www.jgui.com

  • 相关阅读:
    帧率、码流与分辩率之间关系
    谈谈RGB、YUY2、YUYV、YVYU、UYVY、AYUV
    YUV422 to YUV420sp color invert
    mysql——数据库备份——使用mysqldump命令备份所有数据库
    mysql——表的导出——用mysqldump命令导出 文本文件
    mysql——数据还原——使用mysql命令还原
    mysql——表的导出——用mysqldump命令导出 xml文件
    mysql——表的导出——用select……into outfile导出 xls文件和文本文件
    mysql——表的导出——用mysql命令导出 文本文件 和 xls文件
    和菜鸟一起学linux之wifi学习记录基础知识
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/10464408.html
Copyright © 2020-2023  润新知