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 设置标题的自动翻转
Oct 03 Javascript
JavaScript Accessor实现说明
Dec 06 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
May 21 Javascript
js动态生成指定行数的表格
Jul 11 Javascript
网页前端优化之滚动延时加载图片示例
Jul 13 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
Aug 06 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
vue计算属性及使用详解
Apr 02 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
OpenLayers3实现图层控件功能
Sep 25 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 curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
Python映射拆分操作符用法实例
2015/05/19 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
TCP/IP的分层模型
2013/10/27 面试题
商务日语毕业生自荐信范文
2013/11/14 职场文书
有个性的自我评价范文
2013/11/15 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
归元寺导游词
2015/02/06 职场文书
管理失职检讨书
2015/05/05 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
《检阅》教学反思
2016/02/22 职场文书