📄 menu10_com.js
字号:
/***********************************************
* (c) Ger Versluis 2000 version 10.71 8 May 2004 *
* You may use this script on non commercial sites. *
* www.burmees.nl/menu *
************************************************/
if(document.getElementById){
var AgntUsr=navigator.userAgent.toLowerCase(),
AppVer=navigator.appVersion.toLowerCase(),
Opr7=AgntUsr.indexOf("opera 7")!=-1||AgntUsr.indexOf("opera/7")!=-1?true:false;
if((AgntUsr.indexOf("opera")==-1||Opr7)){
var NavYes=((AgntUsr.indexOf("mozilla")!=-1&&AgntUsr.indexOf("compatible")==-1)||Opr7)?true:false,
ExpYes=(AgntUsr.indexOf("msie")!=-1&&!Opr7)? true:false;
if(MenuUsesFrames&&!parent.frames[0])MenuUsesFrames=0;
var Exp6Plus=((AppVer.indexOf("msie 6")!=-1||AppVer.indexOf("msie 7")!=-1)&&!Opr7)?true:false,
MacExp5=(AppVer.indexOf("mac")!=-1&&AppVer.indexOf("msie 5")!=-1)?true:false,
FLoc,ScLoc,DcLoc,SLdAgnWin,FWinH,FColW,SColW,DColW,
SWinW,SWinH,FWinW,
RLvl=0,FntFc=1,StaticPos=0,Ztop=100,
FrstCreat=true,Ldd=false,Crtd=false,FCmplnt=false,SCmplnt=false,M_Clckd=false,IniFlg=false,ShwFlg=false,AcrssFrms=true,
FrstCntnr=null,CurOvr=null,FHtml=null,ScHtml=null,CloseTmr=null,OpnTmr=null,RmbrNow=null,
FStr="",M_Hide="hidden",M_Show="visible",P_X="px",
M_StrtTp=StartTop,M_StrtLft=StartLeft,
Par=MenuUsesFrames?parent:window,Doc=Par.document,Bod=Doc.body,Trigger=NavYes?Par:Bod,
Nav_Op=NavYes&&AgntUsr.indexOf("gecko/")!=-1&&parseInt(AgntUsr.substring(AgntUsr.indexOf("gecko/")+6,AgntUsr.indexOf("gecko/")+12))>=200303?true:false,
InitLdd,LdTmr=setInterval("ChckInitLd()",100)}}
function ChckInitLd(){
InitLdd=ExpYes?
MenuUsesFrames?
Par.frames[FirstLineFrame].document.readyState=="complete"&&Par.frames[SecLineFrame].document.readyState=="complete"?1:0:
Par.document.readyState=="complete"?1:0:
MenuUsesFrames?
Par.frames[FirstLineFrame].document.body&&Par.frames[SecLineFrame].document.body?1:0:
Par.document.body?1:0;
if(InitLdd) {
clearInterval(LdTmr);
Go()}}
function CnclSlct(){
return false}
function RePos(){
FWinW=ExpYes?FCmplnt?FHtml.clientWidth:FLoc.document.body.clientWidth:FLoc.innerWidth;
FWinH=ExpYes?FCmplnt?FHtml.clientHeight:FLoc.document.body.clientHeight:FLoc.innerHeight;
SWinW=ExpYes?SCmplnt?ScHtml.clientWidth:ScLoc.document.body.clientWidth:ScLoc.innerWidth;
SWinH=ExpYes?SCmplnt?ScHtml.clientHeight:ScLoc.document.body.clientHeight:ScLoc.innerHeight;
if(MenuCentered.indexOf("justify")!=-1&&FirstLineHorizontal){
ClcJus();
var P=FrstCntnr.FrstMbr,W=Menu1[5], a=BorderBtwnMain?NoOffFirstLineMenus+1:2,i,
LftXtra=(NavYes&&!Opr7)||MacExp5||FCmplnt?LeftPaddng:0;
FrstCntnr.style.width=NoOffFirstLineMenus*W*FntFc+a*BorderWidthMain+P_X;
for(i=0;i<NoOffFirstLineMenus;i++){
P.style.width=W*FntFc-(P.value.indexOf("<")==-1?LftXtra:0)+P_X;
if(P.ai&&!RightToLeft)P.ai.style.left=BottomUp?W-Arrws[10]-2+P_X:W-Arrws[4]-2+P_X;
P=P.PrvMbr}}
StaticPos=-1;
ClcRl();
if(TargetLoc)ClcTrgt();
ClcLft();
ClcTp();
PosMenu(FrstCntnr,StartTop,StartLeft);
if(RememberStatus)StMnu()}
function UnLdd(){
Ldd=Crtd=false;
SetMenu="0";
var M=FrstCntnr?FrstCntnr.FrstMbr:null;
if(ExpYes){
while(M!=null){
if(M.CCn) {
MakeNull(M.CCn);
M.CCn=null}
M=M.PrvMbr}}
LdTmr=setInterval("ChckLdd()",100)}
function UnLddTotal(){
MakeNull(FrstCntnr);
FrstCntnr=RmbrNow=FLoc=ScLoc=DcLoc=SLdAgnWin=CurOvr=CloseTmr=Doc=Bod=Trigger=null}
function MakeNull(P){
var M=P.FrstMbr,Mi;
while(M!=null){
Mi=M;
if(M.CCn) {
MakeNull(M.CCn);
M.CCn=null}
M=M.PrvMbr;
Mi.PrvMbr=null;
Mi=null}
P.FrstMbr=null}
function ChckLdd(){
if(!ExpYes){
if(ScLoc.document.body){
clearInterval(LdTmr);
Go()}}
else if(ScLoc.document.readyState=="complete"){
if(LdTmr) clearInterval(LdTmr);
Go()}}
function Go(){
if(!Ldd){
Crtd=false;
Ldd=true;
BeforeStart();
if(ScaleMenu){
if(document.defaultView&&document.defaultView.getComputedStyle)
FntFc=parseInt(document.defaultView.getComputedStyle(document.body,'').getPropertyValue("font-size"))/16;
else if(ExpYes&&document.body.currentStyle)
FntFc=parseInt(document.body.currentStyle.fontSize)/12}
status="Building menu";
FLoc=MenuUsesFrames?parent.frames[FirstLineFrame]:window;
ScLoc=MenuUsesFrames?parent.frames[SecLineFrame]:window;
DcLoc=MenuUsesFrames?parent.frames[DocTargetFrame]:window;
if(MenuUsesFrames){
if(!FLoc)FLoc=window;
if(!ScLoc)ScLoc=window;
if(!DcLoc)DcLoc=window}
if(FLoc==ScLoc)AcrssFrms=false;
if(AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:FirstLineHorizontal?FirstLineHorizontal:1;
if(Exp6Plus||Opr7){
FHtml=FLoc.document.getElementsByTagName("HTML")[0];
ScHtml=ScLoc.document.getElementsByTagName("HTML")[0];
FCmplnt=FLoc.document.compatMode.indexOf("CSS")==-1?false:true;
SCmplnt=ScLoc.document.compatMode.indexOf("CSS")==-1?false:true}
FWinW=ExpYes?FCmplnt?FHtml.clientWidth:FLoc.document.body.clientWidth:FLoc.innerWidth;
FWinH=ExpYes?FCmplnt?FHtml.clientHeight:FLoc.document.body.clientHeight:FLoc.innerHeight;
SWinW=ExpYes?SCmplnt?ScHtml.clientWidth:ScLoc.document.body.clientWidth:ScLoc.innerWidth;
SWinH=ExpYes?SCmplnt?ScHtml.clientHeight:ScLoc.document.body.clientHeight:ScLoc.innerHeight;
FColW=FLoc.document.body;
SColW=ScLoc.document.body;
DColW=ScLoc.document.body;
if(TakeOverBgColor)FColW.style.backgroundColor=AcrssFrms?SColW.bgColor:DColW.bgColor;
if(MenuCentered.indexOf("justify")!=-1&&FirstLineHorizontal)ClcJus();
if(FrstCreat||FLoc==ScLoc)FrstCntnr=CreateMenuStructure("Menu",NoOffFirstLineMenus,null);
else CreateMenuStructureAgain("Menu",NoOffFirstLineMenus);
ClcRl();
if(TargetLoc)ClcTrgt();
ClcLft();
ClcTp();
PosMenu(FrstCntnr,StartTop,StartLeft);
Crtd=true;
SLdAgnWin=ExpYes?ScLoc.document.body:ScLoc;
SLdAgnWin.onunload=UnLdd;
if(ExpYes)Trigger.onunload=UnLddTotal;
Trigger.onresize=RePos;
AfterBuild();
if(RememberStatus)StMnu();
FrstCreat=false;
if(MenuVerticalCentered=="static"&&!AcrssFrms)setInterval("KeepPos()",250);
if(!ExpYes)RePos();
IniFlg=true;
Initiate();
status="Menu ready for use"}}
function KeepPos(){
var TS=ExpYes?SCmplnt?ScHtml.scrollTop:ScLoc.document.body.scrollTop:ScLoc.pageYOffset;
if(TS!=StaticPos){
FrstCntnr.OrgTop=StartTop+TS;
FrstCntnr.style.top=FrstCntnr.OrgTop+P_X;
StaticPos=TS}}
function ClcRl(){
StartTop=M_StrtTp<1&&M_StrtTp>0?M_StrtTp*FWinH:M_StrtTp;
StartLeft=M_StrtLft<1&&M_StrtLft>0?M_StrtLft*FWinW:M_StrtLft}
function ClcJus(){
var a=BorderBtwnMain?NoOffFirstLineMenus+1:2,
Sz=Math.round((PartOfWindow*FWinW-a*BorderWidthMain)/NoOffFirstLineMenus),i,j;
for(i=1;i<NoOffFirstLineMenus+1;i++){
j=eval("Menu"+i);
j[5]=Sz}
StartLeft=0}
function ClcTrgt(){
var TLoc=FLoc.document.getElementById(TargetLoc);
while(TLoc){
StartTop+=TLoc.offsetTop;
StartLeft+=TLoc.offsetLeft;
TLoc=TLoc.offsetParent}}
function ClcLft(){
if(MenuCentered.indexOf("left")==-1){
var Sz=FWinW-parseInt(FrstCntnr.style.width);
StartLeft+=MenuCentered.indexOf("right")!=-1?Sz:Sz/2;
if(StartLeft<0)StartLeft=0}}
function ClcTp(){
if(MenuVerticalCentered!="top"&&MenuVerticalCentered!="static"){
var Sz=FWinH-parseInt(FrstCntnr.style.height);
StartTop+=MenuVerticalCentered=="bottom"?Sz:Sz/2;
if(StartTop<0)StartTop=0}}
function PosMenu(Ct,Tp,Lt){
RLvl++;
var Cmplnt=RLvl==1?FCmplnt:SCmplnt,
LftXtra=(NavYes&&!Opr7)||MacExp5||Cmplnt?LeftPaddng:0,
TpXtra=(NavYes&&!Opr7)||MacExp5||Cmplnt?TopPaddng:0,
Mb=Ct.FrstMbr,CStl=Ct.style,MStl=Mb.style,
PadL=Mb.value.indexOf("<")==-1?LftXtra:0,
PadT=Mb.value.indexOf("<")==-1?TpXtra:0,
MWt=parseInt(MStl.width)+PadL,
MHt=parseInt(MStl.height)+PadT,
CWt=parseInt(CStl.width),
CHt=parseInt(CStl.height),
CCw,CCh,STp,SLt,Ti,Li,Hi,
BRW=RLvl==1?BorderWidthMain:BorderWidthSub,
BTWn=RLvl==1?BorderBtwnMain:BorderBtwnSub;
if(RLvl==1&&AcrssFrms)
!MenuFramesVertical?Tp=BottomUp?DistFrmFrameBrdr:FWinH-CHt-DistFrmFrameBrdr:
Lt=RightToLeft?DistFrmFrameBrdr:FWinW-CWt-DistFrmFrameBrdr;
if(RLvl==2&&AcrssFrms)
!MenuFramesVertical?Tp=BottomUp?SWinH-CHt:0:Lt=RightToLeft?SWinW-CWt:0;
if(RLvl==2){
Tp+=VerCorrect;
Lt+=HorCorrect}
CStl.top=RLvl==1?Tp+P_X:0;
Ct.OrgTop=Tp;
CStl.left=RLvl==1?Lt+P_X:0;
Ct.OrgLeft=Lt;
if(RLvl<=FirstLineHorizontal){
Hi=1;
Li=CWt-MWt-2*BRW;
Ti=0}
else{ Hi=Li=0;
Ti=CHt-MHt-2*BRW}
while(Mb!=null){
MStl.left=Li+BRW+P_X;
MStl.top=Ti+BRW+P_X;
if(Mb.CCn){
if(RightToLeft)CCw=parseInt(Mb.CCn.style.width);
if(BottomUp)CCh=parseInt(Mb.CCn.style.height);
if(Hi){ STp=BottomUp?
Ti-CCh:Ti+MHt+2*BRW;
SLt=RightToLeft?Li+MWt-CCw:Li}
else{ SLt=RightToLeft?Li-CCw+ChildOverlap*MWt+BRW:Li+(1-ChildOverlap)*MWt+BRW;
STp=RLvl==1&&AcrssFrms?
BottomUp?Ti-CCh+MHt:Ti:
BottomUp?Ti-CCh+(1-ChildVerticalOverlap)*MHt+2*BRW:Ti+ChildVerticalOverlap*MHt}
PosMenu(Mb.CCn,STp,SLt)}
Mb=Mb.PrvMbr;
if(Mb){ MStl=Mb.style;
PadL=Mb.value.indexOf("<")==-1?LftXtra:0;
PadT=Mb.value.indexOf("<")==-1?TpXtra:0;
MWt=parseInt(MStl.width)+PadL;
MHt=parseInt(MStl.height)+PadT;
Hi?Li-=BTWn?(MWt+BRW):(MWt):Ti-=BTWn?(MHt+BRW):MHt}}
RLvl--}
function StMnu(){
if(Crtd){
var i,Pntr=FrstCntnr,Str=ScLoc.SetMenu?ScLoc.SetMenu:"0";
while(Str.indexOf("_")!=-1&&RememberStatus==1){
i=Pntr.NrItms-parseInt(Str.substring(0,Str.indexOf("_")));
Str=Str.slice(Str.indexOf("_")+1);
Pntr=Pntr.FrstMbr;
for(i;i;i--) Pntr=Pntr.PrvMbr;
Pntr.OM();
Pntr=Pntr.CCn}
i=Pntr.NrItms-parseInt(Str);
Pntr=Pntr.FrstMbr;
for(i;i;i--) Pntr=Pntr.PrvMbr;
if(RmbrNow!=null){
SetItem(RmbrNow,0);
RmbrNow.Clckd=0}
if(Pntr!=null){
SetItem(Pntr,1);
Pntr.Clckd=1;
if(RememberStatus==1)Pntr.OM()}
RmbrNow=Pntr;
ClrAllChlds(FrstCntnr.FrstMbr);
Rmbr(FrstCntnr)}}
function Initiate(){
if(IniFlg&&Ldd){
Init(FrstCntnr);
IniFlg=false;
if(RememberStatus)Rmbr(FrstCntnr);
if(ShwFlg)AfterCloseAll();
ShwFlg=false;
M_Clckd=false}}
function Rmbr(CntPtr){
var Mbr=CntPtr.FrstMbr,St;
while(Mbr!=null){
if(Mbr.DoRmbr){
HiliteItem(Mbr);
if(Mbr.CCn&&RememberStatus==1){
St=Mbr.CCn.style;
St.visibility=M_Show;
Rmbr(Mbr.CCn)}
break}
else Mbr=Mbr.PrvMbr}}
function Init(CPt){
var Mb=CPt.FrstMbr,MCSt=CPt.style;
RLvl++;
MCSt.visibility=RLvl==1?M_Show:M_Hide;
CPt.Shw=RLvl==1?1:0;
while(Mb!=null){
if(Mb.Hilite)LowItem(Mb);
if(Mb.CCn)Init(Mb.CCn);
Mb=Mb.PrvMbr}
RLvl--}
function ClrAllChlds(Pt){
var PSt,Pc;
while(Pt){
if(Pt.Hilite){
Pc=Pt;
if(Pc!=CurOvr)LowItem(Pt);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -