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中实现暂停的几篇文章
Mar 04 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
Mar 24 Javascript
js判断设备是否为PC并调整图片大小
Feb 12 Javascript
javascript里使用php代码实例
Dec 13 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
Apr 26 Javascript
JS控制FileUpload的上传文件类型实例代码
Oct 07 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
Oct 11 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
Feb 10 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
Aug 19 Javascript
Vue实现table上下移动功能示例
Feb 21 Javascript
Vue之Mixins(混入)的使用方法
Sep 24 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
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
JS验证码实现代码
2017/09/14 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
python tkinter基本属性详解
2019/09/16 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
Java里面如何创建一个内部类的实例
2015/01/19 面试题
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
运动会跳远广播稿
2014/02/04 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
运动会闭幕词
2015/01/28 职场文书
2015年司法所工作总结
2015/04/27 职场文书
孟佩杰观后感
2015/06/17 职场文书
法制教育观后感
2015/06/17 职场文书
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL