js自定义鼠标右键的实现原理及源码


Posted in Javascript onJune 23, 2014

今天来记录下js来自定义鼠标右键,同样先来分解下它的实现原理:

1、屏蔽右键默认事件;(一度我以为修改的就是默认事件)

2、对一个ul的隐藏;(这个我也曾迂腐的认为值得这样操作的都是div,汗)

3、对鼠标点击右键做出的响应,显示隐藏的ul;

4、鼠标重新点击后,ul重新被隐藏

这样来看的话,我们需要做的事情是不是就简单了很多,先上代码:

html部分

<ul id="testRight" style="width: 100px;background-color: yellow;position: absolute;z-index: 100;"> 
<li><a href="#">开始</a></li> 
<li><a href="#">暂停</a></li> 
<li><a href="#">拜拜</a></li> 
</ul>

javascript部分:

window.onload=function(){ 
var forRight=document.getElementById("testRight");//获取对象,现在太熟悉了 
forRight.style.display="none"; 
var title=forRight.getElementsByTagName("li"); 

for(var i=0;i<title.length;i++){ 
title[i].onmouseover=function(){ 
this.classname="active";//其实这里我们也可以调用其他事件吧 
}; 
title[i].onmouseout=function(){//这里也是鼠标的两个事件吧 
this.classname=""; 
}; 
} 

document.oncontextmenu=function(event){//这是实现的关键点 
var event=event||window.event;//这个都不是问题了吧 
forRight.style.display="block"; 
forRight.style.left=event.clientX+"px"; 
forRight.style.top=event.clientY+"px";//鼠标的坐标啊 
return false;//这里返回false就是为了屏蔽默认事件 
}; 
document.onclick=function(){//就是为了更形象的模仿啊 
forRight.style.display="none"; 
}; 
};

先来看今天记录的最关键的地方:document.oncontextmenu这个事件返回false的话就是屏蔽默认事件,如果我们其他都不写,只在这个事件里面写return,好像就下面这样

document.oncontextmenu=function(){ 
return false; 
}

这样的话,再点击右键也不会出现任何响应了。然后返回来再看整个的事件应用,好像除了这个事件,其他的都是比较熟悉的事件了,可就是对事件的这种整合总是缺乏,关键还是思路是创意吧,不过先不管哪儿多了,先整吧,但求熟读三千首,不求写来只问吟。扎马步,扎马步,扎马步.....

Javascript 相关文章推荐
jQuery 处理表单元素的代码
Feb 15 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
Jan 17 Javascript
createElement与createDocumentFragment的点点区别小结
Dec 19 Javascript
json原理分析及实例介绍
Nov 29 Javascript
Javascript 遍历页面text控件详解
Jan 06 Javascript
浅谈javascript 函数内部属性
Jan 21 Javascript
JavaScript将一个数组插入到另一个数组的方法
Mar 19 Javascript
JavaScript学习笔记之创建对象
Mar 25 Javascript
详解Javascript中DOM的范围
Feb 13 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
详解Typescript里的This的使用方法
Jan 08 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
Jun 23 #Javascript
用jquery的方法制作一个简单的导航栏
Jun 23 #Javascript
jquery的attr方法禁用表单元素禁用输入内容
Jun 23 #Javascript
JavaScript获取某年某月的最后一天附截图
Jun 23 #Javascript
一个判断抢购时间是否到达的简单的js函数
Jun 23 #Javascript
extjs_02_grid显示本地数据、显示跨域数据
Jun 23 #Javascript
javascript轻量级模板引擎juicer使用指南
Jun 22 #Javascript
You might like
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
php集成动态口令认证
2016/07/21 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
js倒计时显示实例
2016/12/11 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
python可视化实现KNN算法
2019/10/16 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
计算机专业学生的自我评价
2013/12/15 职场文书
学习十八大精神心得体会
2013/12/31 职场文书
八年级历史教学反思
2014/01/10 职场文书
责任心演讲稿
2014/05/14 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
学生实习证明范文
2014/09/28 职场文书
校园运动会广播稿
2014/10/06 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
安全员岗位职责
2015/02/10 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
上学路上观后感
2015/06/16 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript