假设我要把上面这个div设置为右键菜单,先随意美化一下。原理就是利用contextmenu事件,右键点击时,会触发这个事件时,该事件对象可以获得鼠标距离页面左上角的" />
当前位置:首页 > 日记 > 正文

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

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

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等属性,来实现动画效果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

excel做趋势图的方法图解教程

excel做趋势图的方法图解教程

趋势,方法,教程,绘制,电脑软件,  咱们学理工科的学生经常需要处理数据,并作出相应的趋势图。如何作图呢,下面小编来为大家详细介绍做趋势图的图解教程,希望对你有帮助!Excel做趋势图的方法首先,选中数据区域,连名称一起选上。选择插入&mdash;散…

对word2013文档进行加密的两种方法

对word2013文档进行加密的两种方法

文档,方法,加密,两种,电脑软件,  一些情况下需要对office文档进行保护设置,加密就是其中一种很有效的方法,其他保护文档的方法还有限制编辑、限制访问和添加数字签名等。那么下面就由小编给大家分享下对word2013文档进行设置密码的技巧,希望…

怎么在word中制作文档封面在word中

怎么在word中制作文档封面在word中

文档,步骤,方法,封面,电脑软件,  一篇优秀的文档除了内容具体详细外,&ldquo;精致美观&rdquo;也是必不可少的要求之一。一份美观的文档往往能让你在领导心中的印象分提高不少!下面下编教你怎么在word中制作文档封面。在word中制作文档封面…

Vue之Watcher源码解析(1)

Vue之Watcher源码解析(1)

源码,电脑软件,Vue,Watcher,上一节最后再次调用了mount函数,我发现竟然跳到了7000多行的那个函数,之前我还说因为声明早了被覆盖,看来我错了!就是这个函数:// Line-7531 Vue$3.prototype.$mount = function(el, hydrating) { el = el && inB…

学好js,这些js函数概念一定要知道【

学好js,这些js函数概念一定要知道【

推荐,函数,电脑软件,js,函数创建方式 1.声明方式 例如:function consoleTip (){ console.log("tip!"); } 2.表达式方式 例如:var consoleTip = function(){ console.log("tip!"); }两种方式的区别: 1.表达式方式适合用来定义只使用一次的…

详解web存储中的storage

详解web存储中的storage

详解,电脑软件,web,storage,web存储之storage 近期工作中使用的数据存储比较多,在工作之余写一篇关于存储的博客来加深自己的印象,希望大家多多批评指正。一、 web存储分为两种,sessionStorage、localStorage;二、 web存储的特性;1.设置…

H5上传本地并预览功能

H5上传本地并预览功能

上传,功能,电脑软件,最近工作中需要H5上传显示图片的功能,如图:直接上代码:html部分<div class="works-wrap"> <div class="figure-box" id="figure_box"></div> <div class="add-btn"> <input type="file" id="imgUploadBtn"…

Node.js数据库操作之连接MySQL数据

Node.js数据库操作之连接MySQL数据

数据库操作,数据库,连接,电脑软件,Node,介绍首先说来介绍一下MySQL(非广告)。MySQL是由瑞典的MySQL AB公司开发,后来被甲骨文公司收购。和Oracle一样,MySQL是一个典型的关系型数据库,在百度百科中,把MySQL称为是最好的关系数据库管理系统的之一。…

jquery.uploadifive插件怎么解决上

jquery.uploadifive插件怎么解决上

上传,文件大小,插件,电脑软件,jquery,jQuery.uploadifive插件可以很好的解决上传限制图片或文件大小问题,具体方法如下所示:插件是可以用 但遇到问题如何提示是否超过限制呢没办法研究插件js 发现网上给的提示这个插件里竟然没有没有没有.…

excel表格打印缩小放在一张纸的教

excel表格打印缩小放在一张纸的教

缩小,教程,放在,一张纸,表格,  在Excel中录入的数据过多导致一张纸打印不完,但是放到第二张纸又觉得浪费,这个时候就需要我们进行缩小打印,具体该如何设置缩小打印呢?下面是由小编分享的excel表格打印缩小放在一张纸的教程,以供大家阅读和学…

Excel中2010版进行设置顶端标题行

Excel中2010版进行设置顶端标题行

设置,操作技巧,标题,操作步骤,电脑软件,  在excel录入较多的数据时,我们希望每一页都有标题行,这样就可以清楚的知道我们所要表达的意思了。今天,小编就教大家在Excel中2010版进行设置顶端标题行的操作技巧。Excel中2010版进行设置顶端标题…

jQuery实现table中两列CheckBox只

jQuery实现table中两列CheckBox只

示例,电脑软件,table,jQuery,CheckBox,//html<table id="unit"><tr><th>选项一</th><th>选项二</th><th>姓名</th></tr><tr><td><input type="checkbox" /></td><td><input type="checkbox" /></td><td>小红</td></tr><tr><td><input…