视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JavaScript对任意元素,自定义右键菜单的实现方法_基础知识
2020-11-27 21:09:29 责编:小采
文档


一、一些概念:

  1、鼠标事件有一个botton属性:返回一个整数,用于表示点击的是哪个鼠标按键。
  BUG:在IE和标准DOM的鼠标事件中,唯一一个button属性值相同的是“单击右键”事件,都返回2。

  2、事件onmousedown:表示鼠标按键按下的动作。
    事件oncontextmenu:点击鼠标触发的另一个事件。

  3、中断默认事件处理函数的方法:IE中设置returnValue=false; 标准DOM中调用preventDefault()方法。

  4、事件对象:①在IE中,事件对象是window对象的一个event属性。

          声明:

         ②在标准DOM中,事件对象是事件处理函数的唯一参数。

          声明:

      解决兼容性:

二、实现:

HTML:
代码如下:

Uncle Cat is a fat white cat !



剪切
复制
粘贴


javascript:
代码如下:
window.onload=function(){
rightmenu('p1','d1');
}
/****
*     封装右键菜单函数:
*    elementID 要自定义右键菜单的 元素的id
*    menuID    要显示的右键菜单DIv的 id
*/
function rightmenu(elementID,menuID){
  var menu=document.getElementById(menuID); //获取菜单对象
  var element=document.getElementById(elementID);//获取点击拥有自定义右键的 元素
  element.onmousedown=function(aevent){ //设置该元素的 按下鼠标右键右键的 处理函数
    if(window.event)aevent=window.event; //解决兼容性
    if(aevent.button==2){ //当事件属性button的值为2时,表用户按下了右键
      document.oncontextmenu=function(aevent){
    if(window.event){
    aevent=window.event;
        aevent.returnValue=false; //对IE 中断 默认点击右键事件处理函数
      }else{
        aevent.preventDefault(); //对标准DOM 中断 默认点击右键事件处理函数
      };
    };
    menu.style.cssText='display:block;top:'+aevent.clientY+'px;'+'left:'+aevent.clientX+'px;'
    //将菜单相对 鼠标定位
    }
  }
  menu.onmouseout=function(){ //设置 鼠标移出菜单时 隐藏菜单
    setTimeout(function(){menu.style.display="none";},400);
  }
}

下载本文
显示全文
专题