原文地址为: JS实现自定义右键菜单

在灵图时做的,效果如下

Demo效果图

Demo源码如下

<!DOCTYPE html>
<html><head><title>JS实现自定义右键菜单</title><meta http-equiv="content-type" content="text/html; charset=gbk"><script src="http://api.51ditu.com/js/ajax.js"></script><style type="text/css">#container {text-align : center;width : 500px;height : 500px;border : 1px solid blue;margin : 0 auto;}.skin {width : 100px;border : 1px solid gray;padding : 2px;visibility : hidden;position : absolute;}div.menuitems {margin : 1px 0;}div.menuitems a {text-decoration : none;}div.menuitems:hover {background-color : #c0c0c0;}</style>
<script>
window.onload = function() {var container = document.getElementById('container');   var menu = document.getElementById('menu');/*显示菜单*/function showMenu() {var evt = window.event || arguments[0];/*获取当前鼠标右键按下后的位置,据此定义菜单显示的位置*/var rightedge = container.clientWidth-evt.clientX;var bottomedge = container.clientHeight-evt.clientY;/*如果从鼠标位置到容器右边的空间小于菜单的宽度,就定位菜单的左坐标(Left)为当前鼠标位置向左一个菜单宽度*/if (rightedge < menu.offsetWidth)              menu.style.left = container.scrollLeft + evt.clientX - menu.offsetWidth + "px";                else/*否则,就定位菜单的左坐标为当前鼠标位置*/menu.style.left = container.scrollLeft + evt.clientX + "px";/*如果从鼠标位置到容器下边的空间小于菜单的高度,就定位菜单的上坐标(Top)为当前鼠标位置向上一个菜单高度*/if (bottomedge < menu.offsetHeight)menu.style.top = container.scrollTop + evt.clientY - menu.offsetHeight + "px";else/*否则,就定位菜单的上坐标为当前鼠标位置*/menu.style.top = container.scrollTop + evt.clientY + "px";/*设置菜单可见*/menu.style.visibility = "visible";               LTEvent.addListener(menu,"contextmenu",LTEvent.cancelBubble);}/*隐藏菜单*/function hideMenu() {menu.style.visibility = 'hidden';}                              LTEvent.addListener(container,"contextmenu",LTEvent.cancelBubble);LTEvent.addListener(container,"contextmenu",showMenu);LTEvent.addListener(document,"click",hideMenu);
}</script></head><body><div id="menu" class="skin"><div class="menuitems"><a href="javascript:history.back();">后退</a></div><div class="menuitems"><a href="javascript:history.back();">前进</a></div><hr><div class="menuitems"><a href="http://api.51ditu.com/" target="_blank">地图api</a></div><div class="menuitems"><a href="http://www.51ditu.com/traffic/index.html" target="_blank">实时交通</a></div><div class="menuitems"><a href="http://www.51ditu.com" target="_blank">地图搜索</a></div><div class="menuitems"><a href="http://nav.51ditu.com" target="_blank">驾驶导航</a></div><hr><div class="menuitems"><a href="http://uu.51ditu.com" target="_blank">灵图UU</a></div><div class="menuitems"><a href="http://lushu.51ditu.com" target="_blank">路书下载</a></div><hr><div class="menuitems"><a href="http://www.lingtu.com" target="_blank">关于本站</a></div><div class="menuitems"><a href="http://emap.51ditu.com/link/link.html" target="_bland">友情链接</a></div></div><div id="container">      <p>右键此区域</p></div></body>
</html>

  

转载请注明本文地址: JS实现自定义右键菜单

JS实现自定义右键菜单相关推荐

  1. 桌面 html 自定义,【极简壁纸 - 技术分享】html js自定义右键菜单方法

    自定义右键菜单 极简壁纸2.0 地址: https://bz.zzzmh.cn 目前进度已开发到95% 近期有时间就会分享一下,我在开发过程中用到的一些小技术的简单用法和demo 关于html js右 ...

  2. JS简单实现自定义右键菜单

    今天来讲一个关于右键菜单的小demo,抛砖引玉. 首先,我们要用css和html做一个自定义右键菜单. <!--自定义右键菜单html代码--> <div id="menu ...

  3. [读码时间] 自定义右键菜单

    说明:代码取自网络,CSS中注释为笔者学习时添加,JS中的注释为原文所有! <!DOCTYPE html> <html> <head><meta charse ...

  4. Chrome开发自定义右键菜单实现快速跳转到指定页面

    一.背景 假设我们在日常的测试过程中,有很多页面需要经常访问,一种方式是我们可以直接把这些页面添加为书签,但这种方式必须记录完整的URL.如果我们有多套环境,比如有测试环境.UAT环境.线上环境,每套 ...

  5. antd Tree组件中,自定义右键菜单

    最近项目中,有一个需求是自定义antd的Tree组件的右键菜单功能. 直接上代码 class Demo extends Component {state = {rightClickNodeTreeIt ...

  6. DevExpress的TreeList实现自定义右键菜单打开文件选择对话框

    场景 DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/det ...

  7. java 树 右键菜单_jQuery实现自定义右键菜单的树状菜单效果

    本文实例讲述了jQuery实现自定义右键菜单的树状菜单效果.分享给大家供大家参考.具体如下: 这是一款基于jQuery的自定义右键菜单,在树状结构的子节点(下级没有节点)上单击右键才会弹出自定义菜单, ...

  8. 关于FlexPaper 2.1.2版本 二次开发 Logo 、打印、搜索、缩略图、添加按钮、js交互、右键菜单等相关问题...

    原文:关于FlexPaper 2.1.2版本 二次开发 Logo .打印.搜索.缩略图.添加按钮.js交互.右键菜单等相关问题 先废话几句.最近用到文档在线浏览功能,之前用的是print2flash( ...

  9. vue怎么实现右键二级菜单_vue中如何自定义右键菜单详解

    在所编辑的页面,需要添加右键菜单的元素,绑定contextmenu事件,如下: v-for="item in resourceList" :key="item.id&qu ...

  10. win10 自定义右键菜单

    win10 自定义右键菜单 首先使用快捷键 win + r 打开运行窗口,在其中输入 regedit 然后点击 确定 进入注册表后,按照顺序找到位置: HKEY_LOCAL_MACHINE\SOFTW ...

最新文章

  1. Centos firewall基本操作
  2. Gil Zilberfeld问答:敏捷产品的规划与管理
  3. 数组越界怎么判断_算法连载之求解两个有序数组的中位数
  4. 9-18 学习如何使用Python包的管理
  5. c语言大作业万年历,C语言实现简单万年历
  6. useragent 全集 firefox插件 useragetn switch 使用
  7. 计算机子网掩码在线,IP地址计算器
  8. Java KeyTool 的使用
  9. 多选框的 全选 与 取消全选
  10. mysql的etl工具是什么意思_数据同步工具ETL、ELT傻傻分不清楚?3分钟看懂两者区别...
  11. 全球与中国压电比例阀市场深度研究分析报告
  12. 浏览器做打假助手,边界在哪里?
  13. linux .so文件详解
  14. Q1净亏损逾6亿美元,悬在波音头上的利剑何时落下?
  15. 互联网之公众号赚钱大法。原来这么赚钱!
  16. sourcetree 免费许可证
  17. Google Play Store谷歌应用商店游戏数据分析
  18. SQL 如何让数据库数据以倒序输出
  19. 性能测试sysbench之cpu性能测试
  20. 15-读乐嘉《本色》

热门文章

  1. 图形评审技术(GERT)与计划评审技术(PERT)
  2. 使用Aria2下载百度网盘和115的资源
  3. 软件项目管理 3.1.生存期模型选择
  4. matlab生成摆线齿廓线,基于Matlab的摆线针轮齿廓修形参数的求解
  5. CodeSmith 介绍
  6. BurpSuite 1.6~2.x版本汉化版工具
  7. 在线购物系统-面对对象设计
  8. mysql 源码阅读_mysql 源码阅读入口
  9. css让div背景变成半透明
  10. 性能服务器漫画免费下拉式,热浪漫画_斗破苍穹漫画免费下拉式