分享
 
 
 

自定义右键菜单代码详解

王朝other·作者佚名  2008-05-20
窄屏简体版  字體: |||超大  

< style >

< !--

/*定义菜单方框的样式1*/

.skin0 {

position:absolute;

text-align:left;

width:200px; /*宽度,可以根据实际的菜单项目名称的长度进行适当地调整*/

border:2px solid black;

background-color:menu; /*菜单的背景颜色方案,这里选择了系统默认的菜单颜色*/

font-family:Verdana;

line-height:20px;

cursor:default;

visibility:hidden; /*初始时,设置为不可见*/

}

/*定义菜单方框的样式2*/

.skin1 {

cursor:default;

font:menutext;

position:absolute;

text-align:left;

font-family: Arial, Helvetica, sans-serif;

font-size: 10pt;

width:200px; /*宽度,可以根据实际的菜单项目名称的长度进行适当地调整*/

background-color:menu; /*菜单的背景颜色方案,这里选择了系统默认的菜单颜色*/

border:1 solid buttonface;

visibility:hidden; /*初始时,设置为不可见*/

border:2 outset buttonhighlight;

}

/*定义菜单条的显示样式*/

.menuitems {

padding-left:15px; /*左间距*/

padding-right:10px; /*右间距*/

}

-- >

< /style >

< SCRIPT LANGUAGE="JavaScript1.2" >

< !--

//定义菜单显示的外观,可以从上面定义的2种格式中选择其一

var menuskin = "skin1";

//是否在浏览器窗口的状态行中显示菜单项目条对应的链接字符串

var display_url = 0;

<b>function showmenuie5() {</b>

//显示菜单

//获取当前鼠标右键按下后的位置,据此定义菜单显示的位置

var rightedge = document.body.clientWidth-event.clientX;

var bottomedge = document.body.clientHeight-event.clientY;

//如果从鼠标位置到窗口右边的空间小于菜单的宽度,就定位菜单的左坐标(Left)

为当前鼠标位置向左一个菜单宽度

if (rightedge < ie5menu.offsetWidth)

ie5menu.style.left = document.body.scrollLeft + event.clientX - ie5menu.offsetWidth;

else

//否则,就定位菜单的左坐标为当前鼠标位置

ie5menu.style.left = document.body.scrollLeft + event.clientX;

//如果从鼠标位置到窗口下边的空间小于菜单的高度,就定位菜单的上坐标(Top)

为当前鼠标位置向上一个菜单高度

if (bottomedge < ie5menu.offsetHeight)

ie5menu.style.top = document.body.scrollTop + event.clientY - ie5menu.offsetHeight;

else

//否则,就定位菜单的上坐标为当前鼠标位置

ie5menu.style.top = document.body.scrollTop + event.clientY;

//设置菜单可见

ie5menu.style.visibility = "visible";

return false;

}</pre>

<p><pre >

<b>function hidemenuie5() </b>{

//隐藏菜单

//很简单,设置visibility为hidden就OK!

ie5menu.style.visibility = "hidden";

}

<b>function highlightie5() </b>{

//高亮度鼠标经过的菜单条项目

//如果鼠标经过的对象是menuitems,就重新设置背景色与前景色

//event.srcElement.className表示事件来自对象的名称,必须首先判断这个值,这很重要!

if (event.srcElement.className == "menuitems") {

event.srcElement.style.backgroundColor = "highlight";

event.srcElement.style.color = "white";

//将链接信息显示到状态行

//event.srcElement.url表示事件来自对象表示的链接URL

if (display_url)

window.status = event.srcElement.url;

}

}

<b>function lowlightie5() </b>{

//恢复菜单条项目的正常显示

if (event.srcElement.className == "menuitems") {

event.srcElement.style.backgroundColor = "";

event.srcElement.style.color = "black";

window.status = "";

}

}

<b>function jumptoie5() </b>{

//转到新的链接位置

if (event.srcElement.className == "menuitems") {

//如果存在打开链接的目标窗口,就在那个窗口中打开链接

if (event.srcElement.getAttribute("target") != null)

window.open(event.srcElement.url, event.srcElement.getAttribute("target"));

else

//否则,在当前窗口打开链接

window.location = event.srcElement.url;

}

}

// End -- >

< /script >

< /HEAD >

< BODY >

< center >< h3 >在空白处点击鼠标右键,猜猜会看到什么 ?< /h3 >< /center >< br >< br >

//定义菜单方框层ie5ment,并定义其显示样式以及相关的3个监测事件

< div id="ie5menu" class="skin0" onMouseover="highlightie5()"

onMouseout="lowlightie5()" onClick="jumptoie5();" >

//定义其中的菜单条项目

//根据你的需要,在这里添加其他的菜单条名称以及相应的链接URL

< div class="menuitems" url="javascript:history.back();" >后退< /div >

< div class="menuitems" url="javascript:history.forward();" >前进< /div >

< hr >

< div class="menuitems" url="http://www.chinabyte.com/builder/" >ChinaByte网络学院< /div >

< div class="menuitems" url="http://www.chinabyte.com/column/" >ChinaByte专栏天地< /div >

< /div >

//页面加载后,首先执行的初始化脚本程序

< script language="JavaScript1.2" >

//如果当前浏览器是Internet Explorer,document.all就返回真

if (document.all && window.print) {

//选择菜单方块的显示样式

ie5menu.className = menuskin;

//重定向鼠标右键事件的处理过程为自定义程序showmenuie5

document.oncontextmenu = showmenuie5;

//重定向鼠标左键事件的处理过程为自定义程序hidemenuie5

document.body.onclick = hidemenuie5;

}

< /script >

< /body>< /html>

</pre>

<P>

<b>演示效果</b></p>

<P>

OK!看了上面代码的详细解读,你是否领会了其中的技巧?软件真是无所不能,是吗?</p>

<P>

想要看看到底是怎样的神奇效果吗?不要犹豫,请点击<a href="http://www.chinabyte.com/builder/download/gdemo.htm" target="_blank">这里</a>!</p>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有