码迷,mamicode.com
首页 > Web开发 > 详细

JS简单实现自定义右键菜单

时间:2017-05-30 21:03:20      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:tar   定义   blog   class   osi   top   div   click   node   

RT,一个简单的例子,仅仅讲述原理

 

<div id="menu" style="width: 0;height: 0;background: cadetblue;position: absolute"></menu>

 

假设我要把上面这个div设置为右键菜单,先随意美化一下。

原理就是利用contextmenu事件,右键点击时,会触发这个事件时,该事件对象可以获得鼠标距离页面左上角的距离clientX和clientY,

我们可以利用这两个属性,来控制div的水平,垂直偏移量,并且返回false,取消事件的默认行为,来模拟浏览器的右键菜单。

document.oncontextmenu=function(e){

  var x=e.clientX+‘px‘;

  var y=e.clientY+‘px‘;

  var node=document.querySelector(‘#menu‘);

  node.style.left=x;

  node.style.top=y;

  node.style.width=100+‘px‘;

  node.style.height=100+‘px‘;

  return false; //很重要,不能让浏览器显示自己的右键菜单

}

现在是关闭部分,关闭右键菜单的方式,通常是在空白区域点击左键。

document.onclick=function(e){

  if(e.target.id!=‘menu‘)

  {

    var node=document.querySelector(‘#menu‘);

    node.style.width=0;

    node.style.height=0;

  }
}

这仅仅是一个基本的思路的,核心就是contextmenu事件。你可以在此基础上使用CSS随意美化升级,加入类似于transition等属性,来实现动画效果。

 

如果你喜欢我的文章,不要忘记点个赞哦! ( ̄▽ ̄)~( ̄▽ ̄)~

JS简单实现自定义右键菜单

标签:tar   定义   blog   class   osi   top   div   click   node   

原文地址:http://www.cnblogs.com/splitgroup/p/6921069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!