JavaScript打造网页右键菜单二法

来源:网络时间:2012-07-17 11:11:35

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

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

图1

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

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

[code]< 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: .uk -->

< !-- This script and many more are available free online at -->

< !-- The JavaScript Source!! -->

< !-- 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="">回首页< /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>

[/code][button value="复制代码"]

  其效果如下图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可就全解决啦!


文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:rjfawu@163.com
多特网友 2012-12-06 22:05:02 回复
复制代码的按钮没作用- -!!!! 而且写得太简单- -无法看懂!
多特网友 2012-12-28 13:11:47
输入你评价或问题……同意楼上
多特网友 2012-12-06 22:05:02 回复
复制代码的按钮没作用- -!!!! 而且写得太简单- -无法看懂!
多特网友 2012-12-28 13:11:47
输入你评价或问题……同意楼上