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 相关文章推荐
JS getStyle获取最终样式函数代码
Apr 01 Javascript
window.parent与window.openner区别介绍
Apr 12 Javascript
javascript实现存储hmtl字符串示例
Apr 25 Javascript
html的DOM中document对象forms集合用法实例
Jan 21 Javascript
jQuery中 attr() 方法使用小结
May 03 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
JS面试题---关于算法台阶的问题
Jul 26 Javascript
微信小程序 基础组件与导航组件详细介绍
Feb 21 Javascript
ionic3 懒加载
Aug 16 Javascript
vue实现模态框的通用写法推荐
Feb 26 Javascript
讲解vue-router之命名路由和命名视图
May 28 Javascript
JS高级程序设计之class继承重点详解
Jul 07 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
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
Python实现从订阅源下载图片的方法
2015/03/11 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Sanic框架Cookies操作示例
2018/07/17 Python
flask框架视图函数用法示例
2018/07/19 Python
python正则表达式之对号入座篇
2018/07/24 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
python tkinter基本属性详解
2019/09/16 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
微笑服务演讲稿
2014/05/13 职场文书
记账会计岗位职责
2014/06/16 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
Python实现自动玩连连看的脚本分享
2022/04/04 Python