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 相关文章推荐
jQuery 白痴级入门教程
Nov 11 Javascript
javascript中利用数组实现的循环队列代码
Jan 24 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
May 07 Javascript
jquery选择器之属性过滤选择器详解
Jan 27 Javascript
对js关键字命名的疑问介绍
Apr 25 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
Jan 19 Javascript
jQuery实现的向下图文信息滚动效果
May 03 Javascript
js控制div弹出层实现方法
May 11 Javascript
JavaScript中闭包的详解
Apr 01 Javascript
jQuery实现键盘回车搜索功能
Jul 25 jQuery
vue 项目build错误异常的解决方法
Apr 22 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 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
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
初学JavaScript第二章
2008/09/30 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
Python检测数据类型的方法总结
2019/05/20 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
产品生产计划书
2014/05/07 职场文书
敬老模范事迹
2014/05/21 职场文书
平面设计师岗位职责
2014/09/18 职场文书
九寨沟导游词
2015/02/02 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书