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批量操作CSS属性详细解析
Dec 16 Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 Javascript
JavaScript获取表单内所有元素值的方法
Apr 02 Javascript
jquery.mousewheel实现整屏翻屏效果
Aug 30 Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
JS查找字符串中出现最多的字符及个数统计
Feb 04 Javascript
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
Vue组件中slot的用法
Jan 30 Javascript
手写Node静态资源服务器的实现方法
Mar 20 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 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 socket方式提交的post详解
2008/07/19 PHP
php安装swoole扩展的方法
2015/03/19 PHP
PHP中使用BigMap实例
2015/03/30 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
Python文本特征抽取与向量化算法学习
2017/12/22 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
生物专业个人自荐信范文
2013/11/29 职场文书
工程总经理工作职责
2013/12/09 职场文书
物流业务员岗位职责
2014/02/08 职场文书
英文推荐信格式范文
2014/05/09 职场文书
保险内勤岗位职责
2015/04/13 职场文书
警示教育观后感
2015/06/17 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
合理缓解职场压力,让你随时保持最佳状态!
2019/06/21 职场文书
python - timeit 时间模块
2021/04/06 Python
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫