js调出上下文菜单的实例


Posted in Javascript onDecember 17, 2015

本文实例讲述了js调出上下文菜单的实例代码,分享给大家供大家参考,具体如下:

原理

当用户点击右键时会触发一个contextmenu事件,默认会触发浏览器的默认的上下文菜单,通过手动阻止这个默认行为,然后再显示自定义的上下文菜单,当用户单击时隐藏这个菜单即可。
代码
1、html

<div id="box" style="color:red;width: 100%;height:1000px;" >
 <div id="left" style="float:left;width:500px;margin-left: 50px;height:500px;background: #cdeddf;">
  
 </div> 
 <div id="right" style="float:right;width:600px;margin-right: 50px;height:500px;background: #cdeaae;">
 </div>
 <ul id="menu" style="position: absolute;visibility: hidden;list-style: none;">
  <li>按钮1</li>
  <li>按钮2</li>
  <li>按钮3</li>
 </ul>
</div>

2、js

// 添加contextmenu事件
 var right = document.getElementById("right");
 EventUtil.addEventListener(right, "contextmenu", function(event) {
 event = EventUtil.getEvent(event);
 EventUtil.preventDefault(event);
 var menu = document.getElementById("menu");
 
 // 获取鼠标右击时的坐标,并设置上下文菜单出现位置
 page = EventUtil.getPagePosition(event); 
 menu.style.left = page.pageX + "px";
 menu.style.top = page.pageY + "px";
 menu.style.visibility = "visible";
 });
 
 // 添加隐藏上下文菜单事件
 EventUtil.addEventListener(document, "click", function(event) {
 var menu = document.getElementById("menu");
 menu.style.visibility = "hidden";
 });

代码出现的EventUtil在这篇文章有介绍: 《js跨浏览器的事件侦听器和事件对象的使用方法》

以上就是本文的全部内容,教大家js调出上下文菜单的方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
node.js中的socket.io的广播消息
Dec 15 Javascript
jQuery中clone()方法用法实例
Jan 16 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
Mar 23 Javascript
详解vue项目首页加载速度优化
Oct 18 Javascript
详解js的作用域、预解析机制
Feb 05 Javascript
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
RequireJS用法简单示例
Aug 20 Javascript
vue webpack开发访问后台接口全局配置的方法
Sep 18 Javascript
Angular使用Restful的增删改
Dec 28 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
Vue项目中使用jquery的简单方法
May 16 jQuery
JS实现电商商品展示放大镜特效
Jan 07 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
Dec 17 #Javascript
JSONObject使用方法详解
Dec 17 #Javascript
JS实现alert中显示换行的方法
Dec 17 #Javascript
JavaScript中Function函数与Object对象的关系
Dec 17 #Javascript
jQuery实现进度条效果代码
Dec 17 #Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 #Javascript
javascript日期格式化方法小结
Dec 17 #Javascript
You might like
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
ThinkPHP 404页面的设置方法
2015/01/14 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
详解Django配置JWT认证方式
2020/05/09 Python
Python中生成ndarray实例讲解
2021/02/22 Python
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
自我评价怎么写正确呢?
2013/12/02 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
小孩百日宴答谢词
2014/01/15 职场文书
初中新生军训方案
2014/05/13 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
关于读书的活动方案
2014/08/14 职场文书
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript