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 相关文章推荐
style、 currentStyle、 runtimeStyle区别分析
Aug 01 Javascript
node在两个div之间移动,用ztree实现
Mar 06 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
Nov 22 Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
原生javascript实现addClass,removeClass,hasClass函数
Feb 25 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
Nov 24 Javascript
基于vue2实现左滑删除功能
Nov 28 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
vue 移动端适配方案详解
Nov 15 Javascript
vue.js实现回到顶部动画效果
Jul 31 Javascript
vue下载二进制流图片操作
Oct 26 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
PHP $_SERVER详解
2009/01/16 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现partial改变方法默认参数
2014/08/18 Python
Python中多线程的创建及基本调用方法
2016/07/08 Python
python实现Virginia无密钥解密
2019/03/20 Python
Python with语句和过程抽取思想
2019/12/23 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
分布式数据库需要考虑哪些问题
2013/12/08 面试题
PyQt QMainWindow的使用示例
2021/03/24 Python
数学系个人求职信范文
2014/01/30 职场文书
社区工作者演讲稿
2014/05/23 职场文书
班组拓展活动方案
2014/08/14 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
防灾减灾标语
2014/10/07 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
反四风问题学习心得体会
2016/01/22 职场文书