JavaScript实现点击自制菜单效果
作者:~嘘~禁止想象~ 发布时间:2024-05-02 17:24:53
标签:js,点击,菜单
本文实例为大家分享了JavaScript实现点击自制菜单效果的具体代码,供大家参考,具体内容如下
应用场景:当我们希望用户再点击右键的时候不希望弹出浏览器的默认菜单时,需要阻止浏览器默认行为,并执行我们想要的效果
第一种方式,通过创建元素的方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
height: 3000px;
}
.menu {
width: 100px;
height: 280px;
background-color: red;
position: absolute;
left: 0;
top: 0;
display: none;
}
</style>
</head>
<body>
<script>
var Bon = true;
var menu = null;
document.oncontextmenu = function(event) {
if (Bon) {
menu = document.createElement("div");
menu.classList.add("menu");
document.body.appendChild(menu);
menu.style.left = event.pageX + "px";
menu.style.top = event.pageY + "px";
menu.style.display = "block";
Bon = false;
event.preventDefault();
} else {
menu.style.left = event.pageX + "px";
menu.style.top = event.pageY + "px";
event.preventDefault();
}
}
document.onmousedown = function(e) {
if (e.button == 0) {
var menu = document.querySelector(".menu");
document.body.removeChild(menu);
Bon = true;
}
}
</script>
</body>
</html>
第二种:通过隐藏元素的方式
<div class="menu"></div>
<script>
var menu = document.querySelector(".menu");
document.oncontextmenu = function(event) {
menu.style.left = event.pageX + "px";
menu.style.top = event.pageY + "px";
menu.style.display = "block";
event.preventDefault();
}
document.onmousedown = function(e) {
if (e.button == 0) {
menu.style.display = "none";
}
}
</script>
当我们点击右键时就不会弹出默认的菜单了,弹出了我设置的红框框。
来源:https://blog.csdn.net/weixin_45773503/article/details/113425737


猜你喜欢
- 本文实例讲述了JavaScript简单计算人的年龄的方法。分享给大家供大家参考,具体如下:注意Date()类型转换,否则会出现NaN的错误b
- PyQt5访问系统剪切板QClipboard类介绍QClipboard类提供了对系统剪切板的访问,可以在应用程序之间复制和粘贴数据,它的操作
- 一条记录可以看做一条数据的数组1 Html1.1 批量选择框1.2&
- mock.js简介官方链接:Mock.js (mockjs.com)前端开发人员用来模拟虚拟数据,拦截ajax请求,方便模拟后端接口安装np
- 原文:http://research.microsoft.com/~helenw/papers/subspace.pdfwindow.nam
- 1.简介在编写代码时,往往涉及时间、日期、时间戳的相互转换。2.示例# 引入模块import time, datetime2.1 str类型
- 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况。一些话题("if/
- 用ASP代码实现对access数据库的在线压缩处理,注意压缩前请备份数据库。我们知道每个一段时间压缩一下access数据库,可以减少数据库的
- 什么是序列化与反序列化这里引入微软对序列化的解释:序列化是指将对象转换成字节流,从而存储对象或将对象传输到内存、数据库或文件的过程。 它的主
- 今天要介绍的是,如何生成一个"继承"多个对象的实例。 比如,现在有一个"动物"对象的构造函数, fu
- scratch-blocks编译的时候会出现的问题:scratch-gui依赖的scratch-blocks模块在安装的时候编译会报错。原因
- 前言 本文,将描述使用 OpenCV 和 Imutils 围绕任意点旋转指定角度的图像所需的步骤。使用 OpenCV 旋转图像使用
- 这篇文章主要介绍了Python如何实现强制数据类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 自定义分页样式,不多废话,直接上代码~ html部分<div id="my_id"> &nbs
- CMD命令cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows CE与Windows NT平台为基础的
- 简述Motivationsometimes,换一种获取数据的方式,可以提高数据获取的速度。sometimes,由于预计爬取的数据长度不确定,
- 1、要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为http://dev.mysql.com/downl
- 一、媒体管道1.1、媒体管道的特性媒体管道实现了以下特性:避免重新下载最近下载的媒体指定存储位置(文件系统目录,Amazon S3 buck
- 1、绝对导入和相对导入绝对导入:按照sys.path顺序搜索,先主目录(sys.path中第一项''),然后PYTHONPA
- 在Google Reader上看到网友分享的一个链接,真的发现自己已经out了。上面的这张图,是纯CSS实现的,没有背景图、没有Javasc