這個月一直在做一個項目,首頁要求有象浙江大學(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了!