JavaScript自定義右鍵選單詳解
本章節分享一段程式碼例項,它實現了自定義右鍵選單的功能。
下面就給出程式碼例項,並且做一下詳細分析介紹,需要的朋友可以做一下參考。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> * { margin: 0; padding: 0; } #menu { width: 254px; font-size: 12px; position: fixed; top: 0px; left: 0px; padding-top: 2px; border: 1px solid #ccc; display: none; } #menu li { list-style: none; line-height: 25px; margin-left: -1px; padding-left: 26px; } #menu li:hover { background-color: #4281f4; color: #fff; } </style> <script type="text/javascript"> window.onload = function () { var menu = document.getElementById("menu"); document.oncontextmenu = function (e) { var e = e || window.event; menu.style.display = "block"; var cakLeft = (e.clientX > document.documentElement.clientWidth - menu.offsetWidth) ? (document.documentElement.clientWidth - menu.offsetWidth) : e.clientX; var cakTop = (e.clientY > document.documentElement.clientHeight - menu.offsetHeight) ? (document.documentElement.clientHeight - menu.offsetHeight) : e.clientY; menu.style.left = cakLeft + "px"; menu.style.top = cakTop + "px"; return false; } document.onclick = function () { menu.style.display = "none"; } } </script> </head> <body> <ul id="menu"> <li>返回(B)</li> <li>前進(F)</li> <li>從新載入(R)</li> <li>另存為(A)</li> <li>列印(P)</li> <li>檢視網頁原始碼(V)</li> <li>檢視網頁資訊(I)</li> <li>審查元素(N)</li> </ul> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload = function () {},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).var menu = document.getElementById("menu"),獲取id屬性值為menu的元素物件。
(3).document.oncontextmenu = function (e) {},為document註冊oncontextmenu事件,也就是右鍵會彈出選單。
(4).var e = e || window.event,相容所有瀏覽器的事件物件。
(5).menu.style.display = "block",顯示右鍵選單。
(6).var cakLeft = (e.clientX > document.documentElement.clientWidth - menu.offsetWidth) ?
(document.documentElement.clientWidth - menu.offsetWidth) : e.clientX,如果點選右鍵時,滑鼠指標在瀏覽器客戶區的座標距離客戶區右側的距離小於自定義選單的寬度,那麼設定此選單的left屬性值就是瀏覽器客戶區寬度減去選單寬度,否則就是滑鼠指標在客戶區的座標值。
(7).menu.style.left = cakLeft + "px";
menu.style.top = cakTop + "px";
設定右鍵選單的left和top值。
(8).return false,這個很重要,取消預設動作,否則系統自帶的右鍵選單也會出現。
(9).document.onclick = function () {
menu.style.display = "none";
},點選document就會隱藏右鍵選單。
相關文章
- 自定義右鍵選單
- 自定義 Windows 右鍵選單項Windows
- javascript右鍵選單JavaScript
- win10右鍵選單彈出方向怎麼自定義_win10如何自定義右鍵選單彈出方向Win10
- 管理右鍵選單
- JavaScript自定義滾動條詳解JavaScript
- win10系統刪除右鍵選單中“自定義資料夾”選項的方法Win10
- DataGridView清除顯示的資料、設定右鍵選單詳解View
- 【C#】【DevExpress】自定義單元格右鍵選單,去除單元格編輯時,載入系統的預設選單C#devExpress
- Qt右鍵選單實現QT
- windows11 始終右鍵選單顯示更多選項/右鍵選單返回舊版Windows
- 如何給頁面新增追加右鍵選單(原右鍵選單功能保持不變)
- 如何管理win10右鍵新建選單_win10如何清理右鍵新建選單Win10
- 新增右鍵選單: SourceTree 右鍵開啟當前目錄
- Windows如何新增右鍵新建選單Windows
- jq模仿右鍵觸發選單
- JavaScript二級下拉選單詳解JavaScript
- 滑鼠右鍵選單欄東西太多怎麼辦 右鍵選單怎麼編輯調整
- win11 恢復右鍵選單
- 手動新增git到 右鍵選單Git
- [msys2]整合到右鍵選單
- win10滑鼠右鍵選單欄怎麼改 刪除右鍵選單欄無用選項的方法Win10
- Mac 右鍵選單中出現多個 Edge 版本解決方法Mac
- win10右鍵選單出現左邊如何恢復到右邊_win10右鍵選單在左邊怎麼改回右邊Win10
- win10怎麼去除桌面右鍵多餘選單命令_win10如何清理右鍵新建選單Win10
- win11使用傳統右鍵選單
- JavaScript側欄緩動分享選單詳解JavaScript
- win10桌面右鍵選單清理的方法_如何清理win10桌面右鍵選單Win10
- win11右鍵選單怎麼還原經典選單
- win11右鍵選單怎麼改回win10 win11右鍵選單改回win10的方法Win10
- Windows登錄檔增加右鍵多級選單Windows
- C/C++ Qt 給ListWidget增加右鍵選單C++QT
- windows右鍵選單擴充套件容器[開源]Windows套件
- vscode外掛編寫體驗-右鍵選單VSCode
- win10右鍵選單下拉速度很慢怎麼辦_Win10右鍵選單下拉速度慢如何解決Win10
- Windows 11刪除右鍵選單的新建選單的bmp影像(Bitmap image)Windows
- Windows 10右鍵選單新增“管理員取得所有權”Windows
- AM右鍵新易髮選單重建bat指令碼BAT指令碼
- Windows 配置新增右鍵選單 —— 在VSCode中開啟WindowsVSCode