js自定义鼠标右键的实现原理及源码
作者:whsnow 发布时间:2024-04-28 09:51:39
标签:鼠标右键
今天来记录下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;
}
这样的话,再点击右键也不会出现任何响应了。然后返回来再看整个的事件应用,好像除了这个事件,其他的都是比较熟悉的事件了,可就是对事件的这种整合总是缺乏,关键还是思路是创意吧,不过先不管哪儿多了,先整吧,但求熟读三千首,不求写来只问吟。扎马步,扎马步,扎马步.....


猜你喜欢
- 在新旧版的torch中的傅里叶变换函数在定义和用法上存在不同,记录一下。1、旧版fft = torch.rfft(input, 2, nor
- 本实例的实现逻辑是,应用selenium UI自动化登录百度盘,读取存储百度分享地址和提取码的txt文档,打开百度盘分享地址,填入提取码,然
- 如何用net/http构建一个简单的web服务Golang提供了简洁的方法来构建web服务package main import ( &nb
- lambda函数lambda是什么大家好,今天给大家带来的是有关于Python里面的lambda表达式详细解析。lambda在Python里
- 先来看一段创建文件并写入文本的代码,然后作介绍。 #!/usr/bin/env python 'makeFile.py
- 通常情况下,我们想构建一张表单时会在模板文件login.html中写入<form action="/your-name/&q
- PM2实现Nodejs项目自动部署首先简单说下思路:本地git仓库与远程仓库关联(github、码云等平台),然后pm2按照指定配置登录服务
- “模板化”——这也许是视觉设计师通常最不愿意听到的概念,先入为主的会产生“批量生产”、“体力活儿”、“限制思维”等概念,总之都比较负面。但为
- BIT[(M)]位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。TINYINT[(M)] [UNSIGNED]
- 一、TensorFlow模型保存和提取方法1. TensorFlow通过tf.train.Saver类实现神经网络模型的保存和提取。tf.t
- 摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误
- 由于某些原因需要把函数直接放到 img 标签上的 onload 属性执行,比如:For some reasons we have to ex
- osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。
- k-means算法思想较简单,说的通俗易懂点就是物以类聚,花了一点时间在python中实现k-means算法,k-means算法有本身的缺点
- -- 1. 查看被锁的表SELECT p.spid, a.serial#, c.object_name, b.session_id, b.o
- 本文实例为大家分享了vuex实现购物车功能的具体代码,供大家参考,具体内容如下文件目录如下:购物车组件<template> &n
- 很多时候我们在操作过页面时候,特别是增删改操作之后,数据会有所改变,这个时候我们希望返回的界面中的数据要和数据库中的数据进行同步,就需要刷新
- 1.0简介三维图像技术是现在国际最先进的计算机展示技术之一,任何普通电脑只需要安装一个插件,就可以在网络浏览器中呈现三维的产品,不但逼真,而
- 1.筛选出目标值所在行 单列筛选# df[列名].isin([目标值])对当前列中存在目标值的行会返回True,不存在的返回Fal
- python基于新浪sae开发的微信公众平台,实现功能:输入段子---回复笑话输入开源+文章---发送消息到开源中国输入快递+订单号---查