当前位置:首页 > 技术 > 正文内容

html:自定义网页右键菜单

Lotus2022-12-19 10:19技术

在这里插入图片描述

<div id="menu">
      <div
        class="menu-item"
        data-id="1"
      >
        功能1
      </div>
      <div
        class="menu-item"
        data-id="2"
      >
        功能2
      </div>
      <div
        class="menu-item"
        data-id="3"
      >
        功能3
      </div>
      <div
        class="menu-item"
        data-id="4"
      >
        功能4
      </div>
      <div
        class="menu-item"
        data-id="5"
      >
        功能5
      </div>
    </div>

    <script>
      //获取我们自定义的右键菜单
      const menu = document.querySelector('#menu')

      // 右键打开菜单
      window.oncontextmenu = function (e) {
        //取消默认的浏览器自带右键 很重要!!
        e.preventDefault()

        //根据事件对象中鼠标点击的位置,进行定位
        menu.style.left = e.clientX + 'px'
        menu.style.top = e.clientY + 'px'

        //改变自定义菜单的宽,让它显示出来
        menu.style.display = 'block'
      }

      //关闭右键菜单,很简单
      window.onclick = function (e) {
        //用户触发click事件就可以关闭了,因为绑定在window上,按事件冒泡处理,不会影响菜单的功能
        menu.style.display = 'none'
      }

      // 监听菜单点击
      menu.addEventListener('click', function (e) {
        console.log(e.target.dataset.id)
      })
    </script>

    <style>
      #menu {
        /* 隐藏自定义菜单 */
        display: none;
        width: 130px;
        /*自定义菜单相对与body元素进行定位*/
        position: absolute;
      }

      .menu-item {
        height: 30px;
        line-height: 30px;
        padding: 0 10px;
      }

      .menu-item:hover {
        background-color: #f1f1f1;
      }
    </style>

在线预览 https://mouday.github.io/front-end-demo/oncontextmenu.html

参考 js重写鼠标右键

原文链接

扫描二维码推送至手机访问。

版权声明:本文来源于网络,仅供学习,如侵权请联系站长删除。

本文链接:https://news.layui.org.cn/post/1150.html

分享给朋友:

“html:自定义网页右键菜单” 的相关文章

TTD 专题 (第一篇):C# 那些短命线程都在干什么?

一:背景 1.讲故事 在分析的众多dump中,经常会遇到各种奇葩的问题,仅通过dump这种快照形式还是有很多问题搞不定,而通过 perfview 这种粒度又太粗,很难找到问题之所在,真的很头疼,比如本篇的 短命线程 问题,参考图如下: 我们在 t2 时刻抓取的dump对查看 短命线程 毫无帮助,我根本就不知道这个线程生前执行了什么代码,为什么这么短命,还就因为这样的短命让 线程池 的线程暴增。...

【Spring boot】启动过程源码分析

启动过程结论 推测web应用类型。 spi的方式获取BootstrapRegistryInitializer、ApplicationContextInitializer、ApplicationContextInitializer对象。 通过调用栈推测出main()方法所在的类。 调用启动方法:run(String... args)。后面的步骤在这个方法内部! 触发SpringApplicatio...

Codeforces Round #822 (Div. 2) A-F

比赛链接 A 题解 知识点:贪心。 注意到任意三根木棍的相等最优解是最长减最小,因此从小到大排序,三个三个取,取最小值。 时间复杂度 \(O(n\log n)\) 空间复杂度 \(O(n)\) 代码 #include <bits/stdc++.h> #define ll long long using namespace std; ll a[307]; bool solve() {...

CPS攻击案例(一)——基于脉冲宽度调制PWM的无人机攻击

​  本文系原创,转载请说明出处 Please Subscribe Wechat Official Account:信安科研人,获取更多的原创安全资讯 原论文链接:sec22-dayanikli.pdf (usenix.org) 目录 摘要 一 知识背景 1.1 CPS 1.2 脉冲宽度调制PWM 二 攻击方案研究思路 2.1 研究背景 2.2 灵感与动机 2.3 PWM控制执行器的机理 2.3....

【大话云原生】微服务篇-五星级酒店的服务方式

文章开始之前,我给大家推荐一个人工智能学习网站,首先说我之前是完全不涉及人工智能领域的,但是我尽然看懂了,以后老哥我就要参与人工智能了。如果你也想学习,点击跳转到网站 《大话云原生》系列文章期望用最通俗、简单的语言说明云原生生态系统内的组成及应用关系。此专栏的前两篇文章 《【大话云原生】煮饺子与docker、kubernetes之间的关系》 《【大话云原生】负载均衡篇-小饭馆的流量变大了》 欢迎...

【大话云原生】负载均衡篇-小饭馆客流量变大了

文章开始之前,我给大家推荐一个人工智能学习网站,首先说我之前是完全不涉及人工智能领域的,但是我尽然看懂了,以后老哥我就要参与人工智能了。如果你也想学习,点击跳转到网站 一、前言 这是《大话云原生》系列的第二篇,第一篇《煮饺子与docker、kubernetes之间的关系》推出之后受到大家的欢迎,很多朋友联系到我给我加油打气,感谢!我会继续写下去! 书接上回介绍了《煮饺子与docker、kubern...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。