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
Oct 31 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
jquery插件NProgress.js制作网页加载进度条
Jun 05 Javascript
浅谈setTimeout 与 setInterval
Jun 23 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
May 19 Javascript
Angular之指令Directive用法详解
Mar 01 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
使用react render props实现倒计时的示例代码
Dec 06 Javascript
详解小程序如何改变onLoad的执行时机
Nov 01 Javascript
Ant Design Pro 下实现文件下载的实现代码
Dec 03 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
Aug 22 Javascript
swiperjs实现导航与tab页的联动
Dec 13 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
php生成word并下载代码实例
2019/03/15 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
jquery的颜色选择插件实例代码
2008/10/02 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
JS上传前预览图片实例
2013/03/25 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
python判断字符串是否包含子字符串的方法
2015/03/24 Python
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
使用python进行拆分大文件的方法
2018/12/10 Python
详解python中的模块及包导入
2019/08/30 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
房地产开盘策划方案
2014/02/10 职场文书
产品发布会策划方案
2014/05/12 职场文书
小学运动会班级口号
2014/06/09 职场文书
联谊活动总结
2014/08/28 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android