先贴代码:

 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload = function(){
//去掉默认的contextmenu事件,否则会和右键事件同时出现。
document.oncontextmenu = function(e){
e.preventDefault();
};
document.getElementById("test").onmousedown = function(e){
if(e.button ==2){
alert("你点了右键");
}else if(e.button ==0){
alert("你点了左键");
}else if(e.button ==1){
alert("你点了滚轮");
}
}
}
</script>
</head>
<body> <div style="width: 400px;height:400px;margin:auto;border:1px solid pink" id="test"></div>
</body>
</html>

注意的两个点是:

①:先取消默认右击事件,event.preventDefault();

②:判断event.Button:0:左键,1:滚轮,2:右键。

值得一说的的是"oncontextmenu"是指右键按下时的作用。

再给一个应用吧:

右击div显示出自己定义的菜单,点击除了div的地方,是默认的右击事件。

代码:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{
margin: 0;
}
#menu{
width: 100px;
height: 100px;
background-color: aquamarine;
text-align: center;
position: absolute;
left: 0;
top:0;
display: none;
}
#div{
width: 400px;
height: 400px;
background-color: red;;
}
</style>
</head>
<body>
<div id="menu">
<p id="p">lalala</p>
</div>
<div id="div"></div>
<script src="main.js"></script>
</body>
</html>

html

 /**
* Created by Administrator on 2016/8/12.
*/
(function () { var menu = document.querySelector("#menu");
var div = document.querySelector("#div");
var p=document.querySelector("#p");
div.addEventListener("contextmenu", function (event) {
event.preventDefault();
menu.style.display = "block";
menu.style.left = event.pageX + "px";
menu.style.top = event.pageY + "px";
p.addEventListener("click",function () {
alert("a");
});
});
document.addEventListener("contextmenu", function (event) {
if (event.pageX > 400 || event.pageY > 400) {
menu.style.display = "none";
}
});
})();

js

效果自行查看吧,其实也没啥。

原理是,右键的菜单其实是一个隐藏的div,当点击父类div的时候,它出现而已。(貌似这样一说显得这个程序好垃圾啊,╮(╯▽╰)╭其实这也是大厦的一块砖,少了它,大厦会塌的)


再给了类似的应用吧,一个点击div消失的效果。

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>点击消失</title>
<style>
#m{
width: 300px;
height: 300px;
}
#div{
width: 100%;
height:100%;
background-color: red;
}
</style>
</head>
<body>
<div id="m"> <div id="div"></div>
</div>
<script src="main.js"></script>
</body>
</html>

html

 /**
* Created by Administrator on 2016/8/8.
*/
(function () { var width = 100;
var height = 100;
var opacity = 1;
var div = document.getElementById("div");
var time; function clickToNone() {
// width-=20;
width -= 10;
height -= 10;
opacity -= 0.1;
div.style.width = width + "%";
div.style.height = height + "%";
div.style.opacity = opacity;
if (width == 0) {
div.style.display = "none";
clearInterval(time);
// div.style.opacity=0;
}
} function clickTo() {
time = setInterval(clickToNone, 300);
} div.addEventListener("click", clickTo); })();

js

js右击事件的更多相关文章

  1. js 右击事件

    $.fn.extend({        "rightclick": function (fn) {            $(this).mousedown(function ( ...

  2. jqury 右击事件插件

    在有些时候,网页中需要给一些标签对象加入右击的事件,在网上看了一些小的插件,但是不能根据this获取到当前的标签.所以相对他们进行改进一下.自己写了一个小的js右击事件.废话不多说了,看代码. $(f ...

  3. 网页里如何使用js屏蔽鼠标右击事件

    图片.png 在后台管理系统里面,遇到了这样的一个问题,右击ztree菜单,弹出修改界面,但是,现在确实这样的,右击默认弹出功能提示的框框,看上去似乎很影响自己想要的功能,只能禁用了,那么,网页里如何 ...

  4. js为鼠标添加右击事件

    <script language="javascript">  /*document.oncontextmenu=Youji;*/  //为当前文档添加鼠标右击事件,防 ...

  5. ztree实现根节点右击事件,显示添加删除

    需求,右击树节点,出现编辑和删除的提示框 1:在setting 配置里面,给callback设置,右击事件onRightClick: 2:写一个函数onRightClick function onRi ...

  6. 探讨Js的事件的冒泡阶段

    近来看到了一个新的知识点叫Js的事件冒泡,因此决定自己来研究一番. 大家应该都知道,Js中的事件处理分为三个阶段,1:事件的捕获阶段,2:处于目标阶段,3:事件的冒泡阶段.那么什么是事件的捕获和冒泡呢 ...

  7. 浅谈js的事件冒泡机制

    很多人都听说过,js的事件冒泡机制,其实,这个说法还是比较生动形象的,就是一个水泡在水底下,冒泡到水面的过程. 那js的事件冒泡机制呢,就是一个DOM树,一级一级向上冒的过程,最终是到document ...

  8. js键盘事件全面控制详解

      js键盘事件全面控制 主要分四个部分第一部分:浏览器的按键事件第二部分:兼容浏览器第三部分:代码实现和优化第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件 ...

  9. Js 冒泡事件阻止

    Js 冒泡事件阻止   1. 事件目标 现在,事件处理程序中的变量event保存着事件对象.而event.target属性保存着发生事件的目标元素.这个属性是DOM API中规定的,但是没有被所有浏览 ...

随机推荐

  1. 【网络与系统安全】20179209 wireshark和nmap实验

    TCP三次握手包 在进行实验前,先梳理一遍TCP三次握手的过程,这个图是我本科学网络时画过不少于十遍的图,我觉得非常有纪念意义. 稍作解释,第一次握手,客户端发起请求连接,发送一个标志位为SYN的ip ...

  2. java中枚举类型的使用

    Java 枚举(enum) 详解7种常见的用法 JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. web项目里实体类使用枚举类型: 一般在该实体 ...

  3. POJ3094 Sky Code(莫比乌斯反演)

    POJ3094 Sky Code(莫比乌斯反演) Sky Code 题意 给你\(n\le 10^5\)个数,这些数\(\le 10^5\),问这些这些数组成的互不相同的无序四元组(a,b,c,d)使 ...

  4. hibernate 多对多操作(级联操作)

    一.级联保存 分别在用户和角色配置文件中在set标签中加入cascade="save-update": 示例:添加同时添加用户对象和角色对象并关联两个对象: 只需将角色放入用户对象 ...

  5. Hive2.0的新特性介绍

  6. c的详细学习(2)数据类型,运算符与表达式

        本节用来介绍c语言中的数据类型和运算符.     (1)c语言的基本符号:       任何一种基本语言都有自己的基本词汇表.c语言的基本词汇表有一下几部分: *数字10个: *英文字母:大小 ...

  7. Mysql 导入实战

    这个几天公司迁移预览版数据库,当前公司使用的是 Mysql 数据库,版本为 5.6.迁移的数据库大小也不算很大,2G 多一点,总体以小表为主,就几张表数据比较大,有业务记录表达到了 150W 的数量级 ...

  8. 【leetcode刷题笔记】Length of Last Word

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  9. python学习笔记20160413

    1. type(val) #查看val的类型. 2. 出现错误的时候, 读懂错误信息.3. raw_input('xxx') #读取用户输入都是string类型数据.4. ValueError: in ...

  10. 常量池、perm(持久代)、方法区、栈

      常量池.perm(持久代).方法区.栈 常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据. 除了包含代码中所定义的各种基本类型(如:int.long等等)和对象型(如St ...