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对象和DOM对象使用说明
Jun 25 Javascript
关于jquery css的使用介绍
Apr 18 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
js 连续赋值的简单实现
Jun 13 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
Oct 16 Javascript
自定义require函数让浏览器按需加载Js文件
Nov 24 Javascript
浅谈React Event实现原理
Sep 20 Javascript
使用Vuex解决Vue中的身份验证问题
Sep 28 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
Element MessageBox弹框的具体使用
Jul 27 Javascript
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
超级简单的发送邮件程序
2006/10/09 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
python中_del_还原数据的方法
2020/12/09 Python
python 制作网站小说下载器
2021/02/20 Python
大学生冰淇淋店商业计划书
2014/01/14 职场文书
大学生自我鉴定书
2014/03/24 职场文书
服装设计专业求职信
2014/06/16 职场文书
新课培训心得体会
2014/09/03 职场文书
个人整改方案范文
2014/10/25 职场文书
工作推荐信模板
2015/03/25 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js