您好,欢迎来到舟格财经。
搜索
您的当前位置:首页模拟windows平台的上下文菜单效果代码_javascript技巧

模拟windows平台的上下文菜单效果代码_javascript技巧

来源:舟格财经


代码演示:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
结构:
代码如下:


  • 撤销

  • 重做

  • 复制

  • 粘贴

  • 大小写转换

  • 回车

  • 拼写检查

  • 新建

  • 自定义

  • 图形选项

  • 关闭




  • code是这样:
    代码如下:
    function $(id) {
    return document.getElementById(id);
    };

    var EventUnit = {
    addHandler: function(element, type, handler) {//添加事件处理程序
    if(element.addEventListener) {
    element.addEventListener(type, handler, false);
    } else if(element.attachEvent) {
    element.attachEvent('on' + type, handler);
    } else {
    element['on' + type] = handler;
    };
    },
    getEvent: function(event) {
    return event ? event : window.event;
    },
    preventDefault: function(event) {//取消事件默认动作
    if(event.preventDefault) {
    event.preventDefault();
    } else {
    event.returnValue = false;
    };
    }
    }

    EventUnit.addHandler(window, 'load', function() {
    var wrap = $('wrap');
    var menu = $('menu');
    var menuStyle = menu.style.display;
    var x = wrap.offsetLeft + wrap.clientWidth, y = wrap.offsetTop + wrap.clientHeight;
    var w = 0, h = 0;
    var left = 0, top = 0;

    EventUnit.addHandler(wrap, 'contextmenu', function(event) {
    event = EventUnit.getEvent(event);
    EventUnit.preventDefault(event);

    menu.style.display = 'block';
    w = menu.clientWidth;
    h = menu.clientHeight;
    left = (x - event.clientX >= w) ? event.clientX - wrap.offsetLeft : event.clientX - wrap.offsetLeft - w;
    top = (event.clientY + h <= y) ? event.clientY - wrap.offsetTop : event.clientY - wrap.offsetTop - h;
    menu.style.left = left + 'px';
    menu.style.top = top + 'px';
    });

    EventUnit.addHandler(document, 'click', function() {
    menu.style.display = menuStyle;
    });
    });

    Copyright © 2019- zougedi.com 版权所有

    违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

    本站由北京市万商天勤律师事务所王兴未律师提供法律服务