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 相关文章推荐
提高网站信任度的技巧
Oct 17 Javascript
关于jquery css的使用介绍
Apr 18 Javascript
jquery 关于event.target使用的几点说明介绍
Apr 26 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
Sep 01 Javascript
vue.js学习之UI组件开发教程
Jul 03 Javascript
解决iView中时间控件选择的时间总是少一天的问题
Mar 15 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
小程序页面动态配置实现方法
Feb 05 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 Vue.js
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
10 个经典PHP函数
2013/10/17 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
PHP 实现重载
2021/03/09 PHP
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
vue项目中全局引入1个.scss文件的问题解决
2019/08/01 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
基于python实现KNN分类算法
2020/04/23 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python字符串格式化输出代码实例
2019/11/22 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
Magee 1866官网:Donegal粗花呢外套和大衣专家
2019/11/01 全球购物
应届生人事助理求职信
2013/11/09 职场文书
全国道德模范事迹
2014/02/01 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
职工年度考核评语
2014/12/31 职场文书
公司与个人合作协议书
2016/03/19 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers