首頁 >web前端 >js教程 >js調出上下文選單的實例_javascript技巧

js調出上下文選單的實例_javascript技巧

WBOY
WBOY原創
2016-05-16 15:25:111161瀏覽

本文實例講述了js調出上下文選單的實例程式碼,分享給大家供大家參考,具體如下:

原理
  當使用者點擊右鍵時會觸發一個contextmenu事件,預設會觸發瀏覽器的預設的上下文選單,透過手動阻止這個預設行為,然後再顯示自訂的上下文選單,當使用者點擊時隱藏這個選單即可。
代碼
1、html

<div id="box" style="color:red;width: 100%;height:1000px;" >
 <div id="left" style="float:left;width:500px;margin-left: 50px;height:500px;background: #cdeddf;">
  
 </div> 
 <div id="right" style="float:right;width:600px;margin-right: 50px;height:500px;background: #cdeaae;">
 </div>
 <ul id="menu" style="position: absolute;visibility: hidden;list-style: none;">
  <li>按钮1</li>
  <li>按钮2</li>
  <li>按钮3</li>
 </ul>
</div>

2、js

// 添加contextmenu事件
 var right = document.getElementById("right");
 EventUtil.addEventListener(right, "contextmenu", function(event) {
 event = EventUtil.getEvent(event);
 EventUtil.preventDefault(event);
 var menu = document.getElementById("menu");
 
 // 获取鼠标右击时的坐标,并设置上下文菜单出现位置
 page = EventUtil.getPagePosition(event); 
 menu.style.left = page.pageX + "px";
 menu.style.top = page.pageY + "px";
 menu.style.visibility = "visible";
 });
 
 // 添加隐藏上下文菜单事件
 EventUtil.addEventListener(document, "click", function(event) {
 var menu = document.getElementById("menu");
 menu.style.visibility = "hidden";
 });

程式碼出現的EventUtil在這篇文章有介紹: 《js跨瀏覽器的事件偵聽器和事件物件的使用方法》

以上就是本文的全部內容,教大家js調出上下文選單的方法,希望對大家的學習有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn