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等属性,来实现动画效果。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎点击右下角反馈进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。