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


Posted in Javascript onMay 31, 2017

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

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

Javascript 相关文章推荐
node.js chat程序如何实现Ajax long-polling长链接刷新模式
Mar 13 Javascript
javascript:json数据的页面绑定示例代码
Jan 26 Javascript
jQuery选择器全集详解
Nov 24 Javascript
Node.js事件驱动
Jun 18 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
JS重载实现方法分析
Dec 16 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
Dec 23 Javascript
BootStrap的两种模态框方式
May 10 Javascript
代码详解javascript模块加载器
Mar 04 Javascript
vue实现微信获取用户信息的方法
Mar 21 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
页面间固定参数,通过cookie传值的实现方法
May 31 #Javascript
基于react框架使用的一些细节要点的思考
May 31 #Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 #Javascript
使用原生js写ajax实例(推荐)
May 31 #Javascript
Javascript创建类和对象详解
May 31 #Javascript
Javascript继承机制详解
May 30 #Javascript
Vue2.x中的Render函数详解
May 30 #Javascript
You might like
php与php MySQL 之间的关系
2009/07/17 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
PHP pear安装配置教程
2016/05/14 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
jquery实现侧边弹出的垂直导航
2014/12/09 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
python二进制文件的转译详解
2019/07/03 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
历史专业毕业生的自我鉴定
2013/11/15 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
安全生产检讨书
2014/01/21 职场文书
销售顾问岗位职责
2014/02/25 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
计算机求职信
2014/07/02 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
2014年党建工作总结
2014/11/11 职场文书
表扬信范文
2015/05/04 职场文书
七个非常实用的Python工具包总结
2021/06/15 Python