超酷的XP风格的网页右键菜单特效代码

本文提供了一段实现XP风格的网页右键菜单特效的JavaScript代码。该代码通过自定义菜单项,包括返回主页、设为主页等功能,为网页添加了美观且实用的右键菜单。此外,还提供了关闭菜单的选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

<HTML>
<HEAD>
<TITLE></TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR>
<script>
<!--
// menu object
function contextMenu()
{
 
this.items   = new Array();
 
 
this.addItem = function (item)
 {
  
this.items[this.items.length] = item;
 }

 
this.show = function (oDoc)
 {
  
var strShow = "";
  
var i;
  
  strShow 
= "<div id="rightmenu" style="BACKGROUND-COLOR: #ffffff; BORDER: #000000 1px solid; LEFT: 0px; POSITION: absolute; TOP: 0px; VISIBILITY: hidden; Z-INDEX: 10">";
  strShow 
+= "<table border="0" height="";
  strShow 
+= this.items.length * 20;
  strShow 
+= "" cellpadding="0" cellspacing="0">";
  strShow 
+= "<tr height="3"><td bgcolor="#d0d0ce" width="2"></td><td>";
  strShow 
+= "<table border="0" width="100%" height="100%" cellpadding=0 cellspacing=0 bgcolor="#ffffff">";
  strShow 
+= "<tr><td bgcolor="#d0d0ce" width="23"></td><td><img src=" " height="1" border="0"></td></tr></table>";
  strShow 
+= "</td><td width="2"></td></tr>";
  strShow 
+= "<tr><td bgcolor="#d0d0ce"></td><td>";
  strShow 
+= "<table border="0" width="100%" height="100%" cellpadding=3 cellspacing=0 bgcolor="#ffffff">";
  oDoc.write(strShow);
  
for(i=0; i<this.items.length; i++)
  {
   
this.items[i].show(oDoc);
  }
  strShow 
= "</table></td><td></td></tr>";
  strShow 
+= "<tr height="3"><td bgcolor="#d0d0ce"></td><td>";
  strShow 
+= "<table border="0" width="100%" height="100%" cellpadding=0 cellspacing=0 bgcolor="#ffffff">";
  strShow 
+= "<tr><td bgcolor="#d0d0ce" width="23"></td><td><img src=" " height="1" border="0"></td></tr></table>";
  strShow 
+= "</td><td></td></tr>";
  strShow 
+= "</table></div> ";
  oDoc.write(strShow);
 }
}

// menu Item object
function contextItem(text, icon, cmd, type)
{
 
this.text = text ? text : "";
 
this.icon = icon ? icon : "";
 
this.cmd = cmd ? cmd : "";
 
this.type = type ? type : "menu";
 
 
this.show = function (oDoc)
 {
  
var strShow = "";
  
  
if(this.type == "menu")
  {
   strShow 
+= "<tr ";
   strShow 
+= "onmouseover="changeStyle(this, 'on');" ";
   strShow 
+= "onmouseout="changeStyle(this, 'out');" ";
   strShow 
+= "onclick="";
   strShow 
+= this.cmd;
   strShow 
+= "">";
   strShow 
+= "<td class="ltdexit" width="16">";
   
if (this.icon == "")
    strShow 
+= "&nbsp;";
   
else {
    strShow 
+= "<img border="0" src="";
    strShow 
+= this.icon;
    strShow 
+= "" width="16" height="16" style="POSITION: relative"></img>";
   }
   strShow 
+= "</td><td class="mtdexit">";
   strShow 
+= this.text;
   strShow 
+= "</td><td class="rtdexit" width="5">&nbsp;</td></tr>";
  }
  
else if (this.type == "separator")
  {
   strShow 
+= "<tr><td class="ltdexit">&nbsp;</td>";
   strShow 
+= "<td class="mtdexit" colspan="2"><hr color="#000000" size="1"></td></tr>";
  }
  
  oDoc.write(strShow);
 }
}

function changeStyle(obj, cmd)

 
if(obj) try {
  
var imgObj = obj.children(0).children(0);
  
  
if(cmd == 'on') {
   obj.children(
0).className = "ltdfocus";
   obj.children(
1).className = "mtdfocus";
   obj.children(
2).className = "rtdfocus";
   
if(imgObj)
   {
    
if(imgObj.tagName.toUpperCase() == "IMG")
    {
     imgObj.style.left 
= "-1px";
     imgObj.style.top 
= "-1px";
    }
   }
  }
  
else if(cmd == 'out') {
   obj.children(
0).className = "ltdexit";
   obj.children(
1).className = "mtdexit";
   obj.children(
2).className = "rtdexit";
   
if(imgObj)
   {
    
if(imgObj.tagName.toUpperCase() == "IMG")
    {
     imgObj.style.left 
= "0px";
     imgObj.style.top 
= "0px";
    }
   }
  }
 }
 
catch (e) {}
}

function showMenu()
{
 
var x, y, w, h, ox, oy;
 
 x 
= event.clientX;
 y 
= event.clientY;
 
 
var obj = document.getElementById("rightmenu");
 
if (obj == null)
  
return true;
 
 ox 
= document.body.clientWidth;
 oy 
= document.body.clientHeight;
 
if(x > ox || y > oy)
  
return false;
 w 
= obj.offsetWidth;
 h 
= obj.offsetHeight;
 
if((x + w) > ox)
   x 
= x - w;
 
if((y + h) > oy)
  y 
= y - h;
 
 obj.style.posLeft 
= x + document.body.scrollLeft;
 obj.style.posTop 
= y + document.body.scrollTop;
 obj.style.visibility 
= "visible";
 
 
return false;
}
function hideMenu()
{
 
if(event.button == 0)
 {
  
var obj = document.getElementById("rightmenu");
  
if (obj == null)
   
return true;
  obj.style.visibility 
= "hidden";
  obj.style.posLeft 
= 0;
  obj.style.posTop 
= 0;
 }
}

function writeStyle()
{
 
var strStyle = "";
 
 strStyle 
+= "<STYLE type=text/css>";
 strStyle 
+= "TABLE {Font-FAMILY: "Tahoma","Verdana","宋体"; FONT-SIZE: 9pt}";
 strStyle 
+= ".mtdfocus {BACKGROUND-COLOR: #ccccff; BORDER-BOTTOM: #000000 1px solid; BORDER-TOP: #000000 1px solid; CURSOR: hand}";
 strStyle 
+= ".mtdexit {BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid}";
 strStyle 
+= ".ltdfocus {BACKGROUND-COLOR: #ccccff; BORDER-BOTTOM: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; CURSOR: hand}";
 strStyle 
+= ".ltdexit {BACKGROUND-COLOR: #d0d0ce; BORDER-BOTTOM: #d0d0ce 1px solid; BORDER-TOP: #d0d0ce 1px solid; BORDER-LEFT: #d0d0ce 1px solid}";
 strStyle 
+= ".rtdfocus {BACKGROUND-COLOR: #ccccff; BORDER-BOTTOM: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-RIGHT: #000000 1px solid; CURSOR: hand}";
 strStyle 
+= ".rtdexit {BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid}";
 strStyle 
+= "</STYLE>";
 
 document.write(strStyle);
}

function makeMenu()
{
 
var myMenu, item;
 
 
var homepage_cmd = "this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.webjx.com/'); return false;";
 
var favorate_cmd = "window.external.addFavorite('http://www.webjx.com/','网页教学网'); return false;";
 
var viewcode_cmd = "window.location = 'view-source:' + window.location.href";
 
 myMenu 
= new contextMenu();
 
 item 
= new contextItem("返回主页""http://www.webjx.com/js/home.gif""top.location='http://www.webjx.com/';""menu");
 myMenu.addItem(item);
 
 item 
= new contextItem("设为主页""http://www.webjx.com/js/home.gif", homepage_cmd, "menu");
 myMenu.addItem(item);
 
 item 
= new contextItem("添加到收藏夹""http://www.webjx.com/js/favadd.gif", favorate_cmd, "menu");
 myMenu.addItem(item);
 
 item 
= new contextItem("联系作者""http://www.webjx.com/js/mail.gif""location.href='mailto:info@webjx.com'""menu");
 myMenu.addItem(item);
 
 item 
= new contextItem("""""""separator");
 myMenu.addItem(item);
 
 item 
= new contextItem("察看源码""http://www.webjx.com/js/edit.gif", viewcode_cmd, "menu");
 myMenu.addItem(item);
 
 myMenu.show(
this.document);

 
delete item;
 
delete myMenu;
}

function toggleMenu(isEnable)
{
 
if(isEnable)
  document.oncontextmenu 
= showMenu;
 
else
  document.oncontextmenu 
= new function() {return true;};
}

writeStyle();
makeMenu();
document.onclick 
= hideMenu;
document.oncontextmenu 
= showMenu;
file:
//-->
</script>

</HEAD>
<body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">
<table border="0" width="100%" height="100%" cellpadding="0" cellspacing="3">
 
<tr><td valign="top">
  
<div id="docBoard" style="width: 100%">
   超酷的XP风格的网页右键菜单特效代码http://www.webjx.com/htmldata/sort/5.html
  
</div>
 
</td>
 
<td valign="top" align="right">
  
<p><input type="checkbox" name="closerm" onclick="toggleMenu(!this.checked);">关闭右键菜单</p>
 
</td>
 
</tr>
</table>
</body>
</HTML> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值