zoukankan      html  css  js  c++  java
  • 一个调出上下文菜单的实例

    原理

      当用户点击右键时会触发一个contextmenu事件,默认会触发浏览器的默认的上下文菜单,通过手动阻止这个默认行为,然后再显示自定义的上下文菜单,当用户单击时隐藏这个菜单即可。

    代码

    html

     1 <div id="box" style="color:red; 100%;height:1000px;" >
     2      <div id="left" style="float:left;500px;margin-left: 50px;height:500px;background: #cdeddf;">
     3                 
     4      </div>        
     5      <div id="right" style="float:right;600px;margin-right: 50px;height:500px;background: #cdeaae;">
     6      </div>
     7         <ul id="menu" style="position: absolute;visibility: hidden;list-style: none;">
     8             <li>按钮1</li>
     9             <li>按钮2</li>
    10             <li>按钮3</li>
    11        </ul>
    12 </div>

    js

     1   // 添加contextmenu事件
     2     var right = document.getElementById("right");
     3     EventUtil.addEventListener(right, "contextmenu", function(event) {
     4         event = EventUtil.getEvent(event);
     5         EventUtil.preventDefault(event);
     6         var menu = document.getElementById("menu");
     7         
     8         // 获取鼠标右击时的坐标,并设置上下文菜单出现位置
     9         page = EventUtil.getPagePosition(event); 
    10         menu.style.left = page.pageX + "px";
    11         menu.style.top = page.pageY + "px";
    12         menu.style.visibility = "visible";
    13     });
    14     
    15     // 添加隐藏上下文菜单事件
    16     EventUtil.addEventListener(document, "click", function(event) {
    17         var menu = document.getElementById("menu");
    18         menu.style.visibility = "hidden";
    19     });

    PS:代码出现的EventUtil在”跨浏览器的事件侦听器和事件对象“这篇文章有介绍。链接:http://www.cnblogs.com/yuanke/p/5045821.html

  • 相关阅读:
    根据方法名执行方法的例子
    修改cmd的默认路径
    事件处理程序的处理顺序问题
    类型事件定义
    修改应用程序搜索程序集的私有路径
    What's New in Visual Studio 2010
    IE 8 中选项卡通过颜色分组
    再谈CLR:无法避免的装箱
    环境变量(Environment Variable)那点事
    默认情况下程序启动后到底是几个线程?
  • 原文地址:https://www.cnblogs.com/yuanke/p/5051163.html
Copyright © 2011-2022 走看看