Javascript实现鼠标右键特色菜单


Posted in Javascript onAugust 04, 2015

在Web端,通常是不需要右键菜单,各个浏览器也有自己的右键菜单。但是对于一些特殊的网页,是需要右键菜单来增加用户体验的,比如百度音乐,QQ邮箱,相信大家都在Web端使用过右键菜单了,现在来分享一下如何实现,比较简单。

运行代码:

window.onload = function() {
      document.oncontextmenu = block;
      document.body.onmouseup = function(event) {
        if (!event) event = window.event;
        if (event.button == 2) {
          var x = event.pageX || event.clientX;
          var y = event.pageY || event.clientY;
          document.getElementById("contextMenu").style.left = x  "px";
          document.getElementById("contextMenu").style.top = y  "px";
          document.getElementById("contextMenu").style.display = "block";
        }
      }
      //阻止事件冒泡
      document.getElementById("contextMenu").onclick = function(event) {
        event.stopPropagation();
      }
      //点击其他地方隐藏
      document.onclick = function() {
        document.getElementById("contextMenu").style.display = "none";
      }
      for (var i = 0; i < getElementsByClassName("contextMenuItem").length; i ) {
 
        getElementsByClassName("contextMenuItem")[i].onclick = function(event) {
          event = event ? event : window.event
          var target = event.srcElement ? event.srcElement : event.targe;
          document.getElementById("contextMenu").style.display = "none";
          //alert("您点击了: "  target.innerHTML);
           
        }
      }
 
    }
     
    function block(event) {
      if (window.event) {
        event = window.event;
        event.returnValue = false;
      } else event.preventDefault();
    }
    //兼容IE不支持getElementsByClassName
    function getElementsByClassName(className, root, tagName) {
      if (root) {
        root = typeof root == "string" ? document.getElementById(root) : root;
      } else {
        root = document.body;
      }
      tagName = tagName || "*";
      if (document.getElementsByClassName) { 
        return root.getElementsByClassName(className);
      } else {
        var tag = root.getElementsByTagName(tagName); 
        var tagAll = [];
        for (var i = 0; i < tag.length; i ) {
          for (var j = 0, n = tag[i].className.split(' '); j < n.length; j ) {
            if (n[j] == className) {
              tagAll.push(tag[i]);
              break;
            }
          }
        }
        return tagAll;
      }
    }

效果图:

Javascript实现鼠标右键特色菜单

以上就是本文的全部内容,希望大家可以喜欢。

Javascript 相关文章推荐
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
May 07 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
Feb 23 Javascript
jquery超简单实现手风琴效果的方法
Jun 05 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
Sep 04 Javascript
jQuery实现获取元素索引值index的方法
Sep 18 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
JS常见算法详解
Feb 28 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
Aug 18 Javascript
JS生成随机打乱数组的方法示例
Dec 23 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 Javascript
深入了解JavaScript词法作用域
Jul 29 Javascript
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 #Javascript
常用的Javascript数据验证插件
Aug 04 #Javascript
网页收藏夹显示ICO图标(代码少)
Aug 04 #Javascript
实现音乐播放器的代码(html5+css3+jquery)
Aug 04 #Javascript
基于ajax实现文件上传并显示进度条
Aug 03 #Javascript
函数window.open实现关闭所有的子窗口
Aug 03 #Javascript
百度地图api如何使用
Aug 03 #Javascript
You might like
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
浅谈Python基础—判断和循环
2019/03/22 Python
香港交友网站:be2香港
2018/07/22 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
班级聚会策划书
2014/01/16 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
合作意向书模板
2014/03/31 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
融资租赁计划书
2014/04/29 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
谢师宴答谢词
2015/01/05 职场文书
离婚协议书范文
2015/01/26 职场文书
奖励通知
2015/04/22 职场文书
运动会主持人开幕词
2016/03/04 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers