17.JavaScript實現滑鼠右鍵自定義菜單

来源:https://www.cnblogs.com/lanshanxiao/archive/2020/04/28/12794116.html
-Advertisement-
Play Games

JavaScript實現滑鼠右鍵自定義菜單: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale ...


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>
        .area1 {
            width: 200px;
            height: 200px;
            border: 1px solid #ccc;
            float: left;
            background: #008c8c
        }

        .area2 {
            width: 200px;
            height: 200px;
            border: 1px solid #ccc;
            float: right;
            background: #008c8c
        }

        .contain-text {
            position: fixed;
            left: 300px;
            top: 300px;
            border: 1px solid #ccc;
            background:#fff;
            display: none;
            padding:10px;
            text-align:left;
        }

        .contain-text ul {
            list-style: none;
            margin:0;
            padding:0;
        }
    </style>
</head>

<body>
    <div class="area1">
    </div>
    <div class="area2">
    </div>

    <div class="contain-text">
        <ul>
            <li>菜單1</li>
            <li>菜單2</li>
            <li>菜單3</li>
            <li>菜單4</li>
            <li>菜單5</li>
            <li>菜單6</li>
            <li>菜單7</li>
            <li>菜單8</li>
            <li>菜單9</li>
            <li>菜單10</li>
        </ul>
    </div>
    <script>
        var div1 = document.querySelector(".area1");
        var div2 = document.querySelector(".area2");
        var menu = document.querySelector(".contain-text");//菜單
        //註冊自定義滑鼠右鍵菜單事件
        div1.oncontextmenu = div2.oncontextmenu = function (e) {
            e.preventDefault();
            menu.style.display = "block";
            console.log(e.clientX, e.clientY);
            menu.style.left = e.clientX + "px";
            menu.style.top = e.clientY + "px";
        }

        window.onmousedown = function(){
            menu.style.display = "none";
        }
    </script>
</body>

</html>
index.html

效果展示:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JavaScript實現許願牆效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0 ...
  • 一、什麼是new? 眾所周知,在JS中,new的作用是通過構造函數來創建一個實例對象。 像下麵這樣:(和普通函數不一樣,當函數用作 構造函數 時,首字母一般要大寫,以作區分。) 二、new經歷了什麼過程? Foo明明只是一個函數,可是為什麼new Foo()執行後會突然返回一個對象呢? 我們從結果出 ...
  • 繼續上篇 https://www.cnblogs.com/chenyingying0/p/12790111.html 修改webpack.config.js // 打包前端資源 const path = require('path') const VueLoaderPlugin = require( ...
  • 進入一家新的公司,要開發移動端app項目,前端技術選型時前端組長選的是vue的多頁面開發,當時很蒙,vue不是單頁面開發嗎?咋出來多頁面的。接觸之後才發現確實存在也挺簡單的,省去了路由表的配置。那就給大家整體思路分析一波吧。不足之處還請包涵! 單頁面開發我就不多說了,主要講多頁面的開發模式與最終效果 ...
  • 近兩年來小程式逐漸成為互聯網的一個行業風口,一直備受業界關註,各大廠也接踵推出了自己的小程式。近日京東也推出了小程式: " 京東小程式 " 。Taro 作為一款專註於多端統一開發的框架,第一時間對京東小程式進行了適配。接下來就跟著小編一起瞭解一下如何使用 Taro 快速開發京東小程式吧。 背景 京東 ...
  • Vue.js SPA與router是密不可分的 1. 創建vue06,安裝router和vuex 2. 3. router: 在MVVM的模型之上,外加一個router, 實現不同組件的切換,每個組件都是單獨一個MVVM模型 4. 以上這一套是SPA 單頁面應用程式 5. 敲代碼熟悉Vue 6. ...
  • 近年來,Web技術的發展速度快得讓人窒息,特別是最近幾年一代又一代的變革一次又一次的創造。各大巨頭又紛紛把技術轉向HTML5和CSS3,各種企業級框架如雨後春筍般涌現。 那麼今天就給大家介紹幾個在web界比較優秀的前端框架。 1、Bootstrap Twitter出品的Bootstrap在業界是非常 ...
  • 蒲公英 · JELLY技術周刊 Vol.04 「蒲公英」期刊全新升級——JELLY技術周刊!深度挖掘業界熱點動態,來自團隊大咖的專業點評,帶你深入瞭解團隊研究的技術方向。 登高遠眺 天高地迥,覺宇宙之無窮 基礎技術 "WebAssembly 入門" WebAssembly 是一種類彙編語言,相比 J ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...