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代码
Nov 09 Javascript
在多个页面使用同一个HTML片段《续》
Mar 04 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
Apr 02 Javascript
jquery next nextAll nextUntil siblings的区别介绍
Oct 05 Javascript
jquery与prototype框架的详细对比
Nov 21 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
JavaScript实现的一个倒计时的类
Mar 12 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
JS实现网页抢购功能(触发,终止脚本)
Nov 27 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 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 heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
[01:09:24]Ti4开幕式
2014/07/19 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
Python实现对字符串的加密解密方法示例
2017/04/29 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
python getpass模块用法及实例详解
2019/10/07 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
美国著名的团购网站:Woot
2016/08/02 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
实习护士自我鉴定
2013/10/13 职场文书
简易版租房协议书范本
2014/10/13 职场文书
医院见习报告范文
2014/11/03 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
大学运动会通讯稿
2015/07/18 职场文书
Python django中如何使用restful框架
2021/06/23 Python