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 相关文章推荐
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 Javascript
js处理json以及字符串的比较等常用操作
Sep 08 Javascript
node.js中的fs.truncate方法使用说明
Dec 15 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
JS实现列表的响应式排版(推荐)
Sep 01 Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 Javascript
微信小程序教程系列之视图层的条件渲染(10)
Apr 19 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
May 20 Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 Javascript
js+html实现点名系统功能
Nov 05 Javascript
Vue开发环境跨域访问问题
Jan 22 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
Aug 31 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
十天学会php之第四天
2006/10/09 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
jQuery表单验证之密码确认
2017/05/22 jQuery
javascript浏览器用户代理检测脚本实现方法
2017/10/27 Javascript
vue--vuex详解
2019/04/15 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
Python使用MONGODB入门实例
2015/05/11 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python最小二乘法矩阵
2019/01/02 Python
详解Python中的测试工具
2019/06/09 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
初一生物教学反思
2014/01/18 职场文书
《雨点》教学反思
2014/02/12 职场文书
运动会入场式解说词
2014/02/18 职场文书
开业庆典主持词
2014/03/21 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
浅谈Web Storage API的使用
2021/06/23 Javascript
Go语言基础知识点介绍
2021/07/04 Golang