首页 天气预报 新闻 邮箱 搜索 短信 聊天
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 主页制作 > 正文
JavaScript打造网页右键菜单二法

http://www.sina.com.cn 2002/09/03 13:59 5D多媒体

  文/realrocking 

  在一般的网页中,IE浏览器的默认右键菜单是一成不变的固定模式,大部分网友浏览网页时对它的利用率不高。对专业的网页设计师来说,如果能将右键菜单设计成个性化的内容该多好呀。

  试想一下,用户在你的网站上一点右键,就是你精心组织的“链接”、“发信”,甚至包含了缤纷的交互式Flash动画!如图1——别流口水了,下面咱们就解解馋,看看如何制作吧。


图1

  右键菜单的改造,我有两种途径(其实,本质是一样的,都是JavaScript的东西)。

  第一种方法是较早的,把下列源代码复制到网页中HTML文件中即可。

< style>
< !--
.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;
}
.skin1 {
cursor:default;
font:menutext;
position:absolute;
text-align:left;
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
width:120px;
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">
< !-- Web Site: http://www.painting-effects.co.uk -->

< !-- This script and many more are available free online at -->
< !-- The JavaScript Source!! http://javascript.internet.com -->

< !-- Begin
var menuskin = "skin1"; // skin0, or skin1
var display_url = 0; // Show URLs in status bar?
function showmenuie5() {
var rightedge = document.body.clientWidth-event.clientX;
var bottomedge = document.body.clientHeight-event.clientY;
if (rightedge < ie5menu.offsetWidth)
ie5menu.style.left = document.body.scrollLeft + event.clientX -
ie5menu.offsetWidth;
else
ie5menu.style.left = document.body.scrollLeft + event.clientX;
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;
}
function hidemenuie5() {
ie5menu.style.visibility = "hidden";
}
function highlightie5() {
if (event.srcElement.className == "menuitems") {
event.srcElement.style.backgroundColor = "highlight";
event.srcElement.style.color = "white";
if (display_url)
window.status = event.srcElement.url;
}
}
function lowlightie5() {
if (event.srcElement.className == "menuitems") {
event.srcElement.style.backgroundColor = "";
event.srcElement.style.color = "black";
window.status = "";
}
}
function jumptoie5() {
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>
< div id="ie5menu" class="skin0" onMouseover="highlightie5()"
onMouseout="lowlightie5()"   onClick="jumptoie5();">
< div class="menuitems" url="javascript:history.back();">返回< /div>
< div class="menuitems" url="http://javacool.3322.net">回首页< /div>
< hr>
< div class="menuitems" url="http://www.163.com">网易< /div>
< div class="menuitems" url="http://www.sohu.com">搜狐< /div>
< hr>
< div class="menuitems" url="http://www.sina.com.cn">新浪< /div>
< div class="menuitems" url="http://www.yahoo.com.cn">雅虎< /div>
< /div>
< script language="JavaScript1.2">
if (document.all && window.print) {
ie5menu.className = menuskin;
document.oncontextmenu = showmenuie5;
document.body.onclick = hidemenuie5;
}

< /script>

  其效果如下图2:


图2

  第二种方法是利用Dreamweaver的一个插件——Right_Click_Menu_Builder,可以在www.macromedia.com下载得到。安装后,可在Dreamweaver的“Command”菜单的下面找到“Right Click Menu Builder”命令。

  点击该命令,便出现了一个如图3所示的设置框。主要有两部分内容:“Menu”和“Styles”。


图3

  Menu是设置功能的,超级链接、发信链接都在这里设置,在这里最多可以设10项连接。此选择框中“Menu Text”是你右键中将显示的文字(换成中文吧);在“URL”中写入相应的链接路径;“Target”决定是否是新窗口或是用现在的窗口展示链接的内容,填入“Blank”就是在新窗口显示,和Dreamweaver的“Target”设置是一样的。

  那怎样加入Flash呢?是这样做的:在网页中加一个“Table”,它的“W”宽建议设为:“100%”,这样会方便你下面添加的各种元素的定位。好,在该“Table”中插入Flash的SWF文件,位置设成“居中”(主要是方便定位,当然具体问题具体分析,自己多尝试一下会有心得的)。

  小技巧:Flash动画不妨做成有交互链接的那种,为什么呢?这样你就可以加任意数量的超级链接。插件自身有最多10条的限制,用了Flash可就全解决啦!


发表评论】【初学者园地】【科技聊天】【关闭窗口

新 闻 查 询

【学园专题】JavaScript动态网页制作宝库
 相关链接
用“下拉表单”为你主页轻松减肥(2002/08/20 13:22)
用“HTMLMarkup”标记实现网页画中画(2002/08/19 11:58)
增添靓丽风景 让网页记住你的姓名(2002/08/12 11:10)
用JavaScript实现网页上的浮动广告(2002/07/26 13:49)
用JavaScript实现浏览器地震的效果(2002/07/18 12:03)
用JavaScript实现窗口从天而降效果(2002/07/15 10:33)


科技时代意见反馈留言板 电话:010-82612286 或 010-82628888-5488   欢迎批评指正

新浪简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 产品答疑

Copyright © 1996 - 2002 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网