这个月一直在做一个项目,首页要求有象浙江大学(http://www-2.zju.edu.cn)一样导航条。
分析了一下代码:
首先要有mm_menu.js文件,似乎是macromedia公司写的,
* mm_menu 20MAR2002 Version 6.0
* Andy Finnell, March 2002
* Copyright (c) 2000-2002 Macromedia, Inc.
不知道是不是dreamweaver中内含的文件。
下载
http://www-2.zju.edu.cn/mm_menu.js
然后,在需要的页面的<head>之间,调用文件中的
function mmLoadMenus() {
if (window.mm_menu_0423132603_0) return;
window.mm_menu_0423132603_0 = new Menu("root",97,26,"",14,"#000000","#FFFFFF","#ffffff","#777777","left","middle",8,-1,1000,-5,7,true,true,true,0,true,true);
mm_menu_0423132603_0.addMenuItem("领 导 致 辞","window.open('xqzl/ldzc.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("学 校 概 况","window.open('xqzl/xygk/xygk.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("院 系 设 置","window.open('xqzl/yxsz.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("党 政 机 构","window.open('xqzl/dzjg/dzjg.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("学 校 标 志","window.open('xqzl/biaozhi/bz.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("历 史 沿 革","window.open('xqzl/lsyg/lsyg.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("历 任 校 长","window.open('xqzl/lrxz/lrxz.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("校 区 一 览","window.open('xqzl/xqyl/xqly.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("校 园 风 景","window.open('xqzl/fj/fj.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("统 计 资 料","window.open('xqzl/tj/tj.htm', '_self');");
mm_menu_0423132603_0.addMenuItem("浙 大 图 库","window.open('http://www-2.zju.edu.cn/~piclib/', '_blank');");
mm_menu_0423132603_0.addMenuItem("大 事 记","window.open('xqzl/dsj/dsj4.htm', '_self');");
mm_menu_0423132603_0.hideOnMouseOut=true;
mm_menu_0423132603_0.bgColor='#ffffff';
mm_menu_0423132603_0.menuBorder=1;
mm_menu_0423132603_0.menuLiteBgColor='#FFFFFF';
mm_menu_0423132603_0.menuBorderBgColor='#999999';
window.mm_menu_0423205435_0 = new Menu("root",115,26,"",14,"#000000","#FFFFFF","#ffffff","#777777","left","middle",8,-1,1000,-5,7,true,true,true,0,true,true);
mm_menu_0423205435_0.addMenuItem("研 究 生 教 育","window.open('rcpy/yjsjy/yjsjy.htm', '_self');");
mm_menu_0423205435_0.addMenuItem("本 科 生 教 育","window.open('rcpy/bksjy/bksjy.htm', '_self');");
mm_menu_0423205435_0.addMenuItem("留 学 生 教 育","window.open('gjjl/gjjy.htm', '_self');");
mm_menu_0423205435_0.addMenuItem("成 人 教 育","window.open('http://www.cj.zju.edu.cn/', '_blank');");
mm_menu_0423205435_0.addMenuItem("远 程 教 育","window.open('http://www.zjuyc.com/index.jsp', '_blank');");
mm_menu_0423205435_0.addMenuItem("师 资 培 训","window.open('rcpy/szpx/sz.htm', '_self');");
mm_menu_0423205435_0.addMenuItem("学 科 基 地","window.open('rcpy/xkjd.htm', '_self');");
mm_menu_0423205435_0.hideOnMouseOut=true;
mm_menu_0423205435_0.bgColor='#ffffff';
mm_menu_0423205435_0.menuBorder=1;
mm_menu_0423205435_0.menuLiteBgColor='#FFFFFF';
mm_menu_0423205435_0.menuBorderBgColor='#999999';
……
……
……
}//mmLoadMenus()结束,主要用来生成menu对象,每个对象对应一个menu块
例如:
window.mm_menu_0423132603_0 = new Menu("root",97,26,"",14,"#000000","#FFFFFF","#ffffff","#777777","left","middle",8,-1,1000,-5,7,true,true,true,0,true,true);
注意“mm_menu_0423132603_0”的数字用来区分不同的menu块,其后的97,26代表弹出munu的宽和高 14代表字号
加入,一些必要的函数
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</SCRIPT>
当然不要忘记
<SCRIPT language=JavaScript src="inc/mm_menu.js"></SCRIPT>
在body中加入<SCRIPT language=JavaScript1.2>mmLoadMenus();</SCRIPT>
然后就可以开始我们激动人心的调用了!
格式如下:
<TD
onmouseover="MM_swapImage('Image1','','images/on_1.jpg',1)"
onmouseout=MM_swapImgRestore()><SPAN class=div_gui id=gui
ondblclick="MM_showMenu(window.mm_menu_0423132603_0,134,0,null,'Image1')"
onmouseover="MM_showMenu(window.mm_menu_0423132603_0,134,0,null,'Image1')"
style="PADDING-LEFT: 24px; Z-INDEX: 1; PADDING-TOP: 16px; POSITION: absolute"
onclick="MM_showMenu(window.mm_menu_0423132603_0,134,0,null,'Image1')">学院概况</SPAN>
<FONT
ondblclick="MM_showMenu(window.mm_menu_0423132603_0,134,0,null,'Image1')"
onmouseover="MM_showMenu(window.mm_menu_0423132603_0,134,0,null,'Image1')"
onclick="MM_showMenu(window.mm_menu_0423132603_0,134,0,null,'Image1')"
onmouseout=MM_startTimeout();><IMG id=Image1 height=49
src="images/1.jpg" width=134 border=0
name=Image1></FONT></TD>
这就是调用一个menu块的代码
其中:
SPAN class=div_gui 的样式需要在css中单独定义
Image1用来表示本menu块
MM_swapImage是显示mouseon后的图片
style="PADDING-LEFT: 24px; Z-INDEX: 1; PADDING-TOP: 16px; POSITION: absolute"
中可以用PADDING-LEFT和PADDING-TOP的值控制文字的位置
ondblclick="MM_showMenu(window.mm_menu_0423132603_0,134,0,null,'Image1')"
中的0用来控制弹出菜单的位置0为平齐,负值为向上移动的位置,正值向下。
好了,这些数据就可以让我应用这个漂亮的menu了!
本文地址:http://com.8s8s.com/it/it30720.htm