JavaScript实现点击自制菜单效果


Posted in Javascript onFebruary 02, 2021

本文实例为大家分享了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>

当我们点击右键时就不会弹出默认的菜单了,弹出了我设置的红框框。

JavaScript实现点击自制菜单效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript字符串替换及字符串分割示例代码
Dec 12 Javascript
jquery获取html元素的绝对位置和相对位置的方法
Jun 20 Javascript
JQuery做的一个简单的点灯游戏分享
Jul 16 Javascript
javascript html5移动端轻松实现文件上传
Mar 27 Javascript
JavaScript驾驭网页-CSS与DOM
Mar 24 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
May 03 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
JavaScript中的编码和解码函数
Feb 15 Javascript
javascript 正则表达式分组、断言详解
Apr 20 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
vue2.0 axios跨域并渲染的问题解决方法
Mar 08 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
Vue项目打包部署到apache服务器的方法步骤
Feb 01 #Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 #Vue.js
Vue 实现可视化拖拽页面编辑器
Feb 01 #Vue.js
vue-video-player 断点续播的实现
Feb 01 #Vue.js
Element el-button 按钮组件的使用详解
Feb 01 #Javascript
js实现简单商品筛选功能
Feb 02 #Javascript
如何在现代JavaScript中编写异步任务
Jan 31 #Javascript
You might like
php中文本操作的类
2007/03/17 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
Python 正则表达式操作指南
2009/05/04 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
在Python中使用正则表达式的方法
2015/08/13 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
pandas重新生成索引的方法
2018/11/06 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
实例讲解Python3中abs()函数
2019/02/19 Python
python nmap实现端口扫描器教程
2020/05/28 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
AJAX的全称是什么
2012/11/06 面试题
母亲节演讲稿范文
2014/01/02 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
《春天来了》教学反思
2014/04/07 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android