1. 程式人生 > >js自定義右鍵選單,點選自定義選單隱藏、顯示指定div

js自定義右鍵選單,點選自定義選單隱藏、顯示指定div

       首先寫好自己想要的右鍵選單的樣子,然後設定該選單div為預設隱藏,滑鼠右擊後設置css顯示該選單(display:block;),並禁用瀏覽器右鍵預設選單。

接下來就可以寫選單中具體項的點選事件實現隱藏和顯示指定div了。

完整程式碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>demo</title>
<style>
	#myMenu {width: 80px;background: white;display: none;position: absolute;border:1px solid #EED5D2;z-index:999}
	#myMenu ul{list-style: none;}
	#myMenu ul li{width:50px;height:20px;background:#FFE4B5;margin-bottom:5px;text-align:center;margin-left:-25px}
	#myDiv{border:1px solid red;width:100px;height:100px;display:block;margin:200px auto; }
</style>
<script>
	//滑鼠右鍵預設選單事件
	document.oncontextmenu = function(ev) {
		var oevent = ev || event;
		var myMenu = document.getElementById('myMenu');
		//彈出自定義選單
		myMenu.style.display = 'block';
		//設定自定義選單的座標,達到滑鼠右鍵的地方彈出自定義選單
		myMenu.style.left = oevent.clientX + 'px';
		myMenu.style.top = oevent.clientY + 'px';

		//禁用右鍵預設選單
		return false;
	}	
	//點選頁面任意區域,隱藏自定義選單
	document.onclick = function() {
		var myMenu = document.getElementById('myMenu');
		myMenu.style.display = 'none';
	}
	//顯示div
	function xianshi(){
		var myDiv = document.getElementById('myDiv');
		myDiv.style.display="block";
	}
	//隱藏div
	function yc(){
		var myDiv = document.getElementById('myDiv');
		myDiv.style.display="none";
	}
</script>
</head>

<body>
	<div id="myMenu">
		<ul>
			<li onclick="xianshi();">顯示</li>
			<li onclick="yc();">隱藏</li>
		</ul>
	</div>
	<div id="myDiv">我是內容</div>
</body>

</html>