⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu132_com.js

📁 实现一个千兆以太网卡的NDIS的miniport驱动实例源代码 对于那些希望写一个NDIS 6.0的miniport设备驱动的开发人员来说
💻 JS
📖 第 1 页 / 共 2 页
字号:
/******************************************************
*	(c) Ger Versluis 2000 version 13.21               *
*	You may use this script on non commercial sites.  *
*	www.burmees.nl/menu			                      *
*                                                     *
*   Used with permission. 13.21 Mods by Chris Maunder *
*******************************************************/

function HVMenu(config)
{
var cfg = config;
var thisobj = this;

if(document.getElementById){
	var AgntUsr=navigator.userAgent.toLowerCase(),AppVer=navigator.appVersion.toLowerCase(),
	Opr=AgntUsr.indexOf("opera")!=-1,Opr7=Opr&&parseInt(AgntUsr.substring(AgntUsr.indexOf("opera")+6))>6?true:false;
	if((!Opr||Opr7)){
		if(AppVer.indexOf("msie 7")!=-1)cfg.OverFormElements=0;
		var NavYes=((AgntUsr.indexOf("mozilla")!=-1&&AgntUsr.indexOf("compatible")==-1)||Opr7)?true:false,ExpYes=(AgntUsr.indexOf("msie")!=-1&&!Opr7)?	true:false;
		if(cfg.MenuUsesFrames&&!parent.frames[0])cfg.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=cfg.StartTop,M_StrtLft=cfg.StartLeft,
		Par=cfg.MenuUsesFrames?parent:window,Doc=Par.document,Bod=Doc.body,Trigger=NavYes?Par:Bod,
		Nav_Op=NavYes&&AgntUsr.indexOf("gecko/")!=-1&&AgntUsr.indexOf("mac")==-1&&parseInt(AgntUsr.substring(AgntUsr.indexOf("gecko/")+6,AgntUsr.indexOf("gecko/")+12))>=200303?true:false,
		InitLdd,MstSz=0;this.LdTmr=setInterval(function(){thisobj.ChckInitLd()},100);}}

this.ChckInitLd = function(){
	InitLdd=ExpYes?
		cfg.MenuUsesFrames?Par.frames[cfg.FirstLineFrame].document.readyState=="complete"&&Par.frames[cfg.SecLineFrame].document.readyState=="complete"?
		1:0:Par.document.readyState=="complete"?
		1:0:cfg.MenuUsesFrames?Par.frames[cfg.FirstLineFrame].document.body&&Par.frames[cfg.SecLineFrame].document.body?1:0:Par.document.body?1:0;
	if(InitLdd)	thisobj.Go();}

this.CnclSlct = function(){return false}

this.RePos = function(){
	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(MstSz)thisobj.SizeMenu(FrstCntnr);
	StaticPos=-1;
	thisobj.ClcRl();
	if(cfg.TargetLoc){thisobj.ClcTrgt();}
	thisobj.ClcLft();
	thisobj.ClcTp();
	thisobj.PosMenu(FrstCntnr,cfg.StartTop,cfg.StartLeft);
	if(cfg.RememberStatus)this.StMnu()}

this.UnLdd = function(){
	Ldd=Crtd=false;
	SetMenu="0";
	var M=FrstCntnr?FrstCntnr.FrstMbr:null;
	if(ExpYes){while(M!=null){if(M.CCn){this.MakeNull(M.CCn);M.CCn=null}M=M.PrvMbr}}
	/*this.LdTmr=setInterval(function(){thisobj.ChckLdd()},100)*/}

this.UnLddTotal = function(){if(ExpYes){
	thisobj.MakeNull(FrstCntnr);
	FrstCntnr=RmbrNow=FLoc=ScLoc=DcLoc=SLdAgnWin=CurOvr=CloseTmr=Doc=Bod=Trigger=null}}

this.MakeNull = function(P){
	var M=P.FrstMbr,Mi;
	while(M!=null){Mi=M;if(M.CCn){this.MakeNull(M.CCn);M.CCn.mif=null;M.CCn=null}M=M.PrvMbr;Mi.PrvMbr=null;Mi=null}
	P.FrstMbr=null}

this.ChckLdd = function(){if(!ExpYes){
	if(ScLoc.document.body)this.Go();}
	else if(ScLoc.document.readyState=="complete")this.Go();}

this.Go = function(){
	if(this.LdTmr)clearInterval(this.LdTmr);this.LdTmr=null;
	
	if(!Ldd){	Crtd=false;Ldd=true;
		cfg.BeforeStart();
		if(cfg.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=cfg.MenuUsesFrames?parent.frames[cfg.FirstLineFrame]:window;
		ScLoc=cfg.MenuUsesFrames?parent.frames[cfg.SecLineFrame]:window;
		DcLoc=cfg.MenuUsesFrames?parent.frames[cfg.DocTargetFrame]:window;
		if(cfg.MenuUsesFrames){if(!FLoc)FLoc=window;if(!ScLoc)ScLoc=window;if(!DcLoc)DcLoc=window}
		if(FLoc==ScLoc)AcrssFrms=false;
		if(AcrssFrms)cfg.FirstLineHorizontal=cfg.MenuFramesVertical?0:cfg.FirstLineHorizontal?cfg.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(cfg.TakeOverBgColor)FColW.style.backgroundColor=AcrssFrms?SColW.bgColor:DColW.bgColor;
		if(FrstCreat||FLoc==ScLoc)FrstCntnr=this.CreateMenuStructure("cfg.Menu",cfg.NoOffFirstLineMenus,null);
		else this.CreateMenuStructureAgain("cfg.Menu",cfg.NoOffFirstLineMenus);
		this.SizeMenu(FrstCntnr);
		thisobj.ClcRl();
		if(cfg.TargetLoc){thisobj.ClcTrgt();}thisobj.ClcLft();thisobj.ClcTp();
		this.PosMenu(FrstCntnr,cfg.StartTop,cfg.StartLeft);
		Crtd=true;
		SLdAgnWin=ExpYes?ScLoc.document.body:ScLoc;
		//SLdAgnWin.onunload=thisobj.UnLdd;
		//Trigger.onunload=thisobj.UnLddTotal;
		//Trigger.onresize=thisobj.RePos;
		
		if (ExpYes) {
			//try { 
				SLdAgnWin.attachEvent('onunload', thisobj.UnLdd); 
				//Trigger.attachEvent('onunload', thisobj.UnLddTotal); 
				//Trigger.attachEvent('onresize', thisobj.RePos); 
				window.attachEvent('onresize', thisobj.RePos); 				
				window.attachEvent('onunload', thisobj.UnLddTotal); 
			//} catch(e) {}
		} else {
			SLdAgnWin.addEventListener('unload', thisobj.UnLdd, true);
			Trigger.addEventListener('unload', thisobj.UnLddTotal, true);
			Trigger.addEventListener('resize', thisobj.RePos, true);
		}
		cfg.AfterBuild();
		if(cfg.RememberStatus)thisobj.StMnu();
		FrstCreat=false;
		if(cfg.MenuVerticalCentered=="static"&&!AcrssFrms)setInterval(function(){thisobj.KeepPos()},50);
		if(!ExpYes){FWinW=-1;thisobj.RePos()}
		IniFlg=true;thisobj.Initiate();
		status="Menu ready for use"}}

this.KeepPos = function(){
	var TS=ExpYes?SCmplnt?ScHtml.scrollTop:ScLoc.document.body.scrollTop:ScLoc.pageYOffset;
	if(TS!=StaticPos){
		StaticPos+=(TS-StaticPos)*.2;
		if(Math.abs(StaticPos-TS)<=1)StaticPos=TS;
		FrstCntnr.OrgTop=cfg.StartTop+StaticPos;
		FrstCntnr.style.top=FrstCntnr.mif.style.top=FrstCntnr.OrgTop+P_X}}

this.ClcRl = function() {
	cfg.StartTop=M_StrtTp<1&&M_StrtTp>0?M_StrtTp*FWinH:M_StrtTp;cfg.StartLeft=M_StrtLft<1&&M_StrtLft>0?M_StrtLft*FWinW:M_StrtLft;}

this.ClcTrgt = function(){
	var TLoc=FLoc.document.getElementById(cfg.TargetLoc);
	while(TLoc){cfg.StartTop+=TLoc.offsetTop;cfg.StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent}}

this.ClcLft = function(){
	if(cfg.MenuCentered.indexOf("left")==-1){
		var Sz=FWinW-parseInt(FrstCntnr.style.width);
		cfg.StartLeft+=cfg.MenuCentered.indexOf("right")!=-1?Sz:Sz/2;if(cfg.StartLeft<0)cfg.StartLeft=0}}

this.ClcTp = function(){
	if(cfg.MenuVerticalCentered!="top"&&cfg.MenuVerticalCentered!="static"){
		var Sz=FWinH-parseInt(FrstCntnr.style.height);
		cfg.StartTop+=cfg.MenuVerticalCentered=="bottom"?Sz:0;if(cfg.StartTop<0)cfg.StartTop=0}}

this.SizeMenu = function(C){
	var Cmplnt=C.Lvl==1?FCmplnt:SCmplnt,M=C.FrstMbr,Mi,i,W=0,H=0,Wd,Ht,RI,BRW=C.Lvl==1?cfg.BorderWidthMain:2*cfg.BorderWidthSub,BTWn=C.Lvl==1?cfg.BorderBtwnMain:cfg.BorderBtwnSub;
	if(C.Lvl<=cfg.FirstLineHorizontal){
		while(M!=null){W+=Math.round((M.Arr[5]<1?(M.Arr[5]*(M.Lvl==1?FWinW:SWinW)):(M.Arr[5]*FntFc)));Mi=M;M=M.PrvMbr}
		W+=((C.NrItms-1)*BTWn+2*BRW)+cfg.LeftPaddng;
		Ht=H=Math.round((Mi.Arr[4]<1?(Mi.Arr[4]*(Mi.Lvl==1?FWinH:SWinH)):(Mi.Arr[4]*FntFc)));H+=(2*BRW)}
	else {	
		while(M!=null){H+=Math.round((M.Arr[4]<1?(M.Arr[4]*(M.Lvl==1?FWinH:SWinH)):(M.Arr[4]*FntFc)));Mi=M;M=M.PrvMbr}
		H+=((C.NrItms-1)*BTWn+2*BRW)+cfg.TopPaddng;
		Wd=W=Math.round((Mi.Arr[5]<1?(Mi.Arr[5]*(Mi.Lvl==1?FWinW:SWinW)):(Mi.Arr[5]*FntFc)));W+=(2*BRW)}
	C.style.width=C.mif.style.width=W+P_X;C.style.height=C.mif.style.height=H+P_X;
	M=C.FrstMbr;
	while(M!=null){
		if(M.Arr[5]<1){W=C.Lvl<=cfg.FirstLineHorizontal?(M.Arr[5]*(M.Lvl==1?FWinW:SWinW)):Wd;MstSz=1}
		else W=(C.Lvl<=cfg.FirstLineHorizontal?M.Arr[5]:Wd)*FntFc;
		if(M.Arr[4]<1){H=C.Lvl<=cfg.FirstLineHorizontal?Ht:(M.Arr[4]*(M.Lvl==1?FWinH:SWinH));MstSz=1}
		else H=(C.Lvl<=cfg.FirstLineHorizontal?Ht:M.Arr[4])*FntFc;
		W=Math.round(W);H=Math.round(H);
		if (C.Lvl>1)W-=2;
		if(M.value.indexOf("<")==-1) {
			M.tpd=cfg.TopPaddng<0?(Math.round(H*.5-M.Arr[12]*FntFc)):cfg.TopPaddng;if(M.tpd<0||M.tpd>H)M.tpd=0;
			M.ltp=cfg.LeftPaddng;if(M.ltp<0||M.ltp>W)M.ltp=0;
			if((NavYes&&!Opr7)||MacExp5||Cmplnt){M.lx=M.ltp;M.tx=M.tpd}}
		else
		{
			M.tpd = 0;
			M.ltp = 0;
			M.lx = 0;
			M.tx = 0;
		}
		M.style.width=W-M.lx+P_X;M.style.height=H-M.tx+P_X;
		M.style.paddingLeft=M.ltp+P_X;M.style.paddingTop=M.tpd+P_X;
		if(M.ro){RI=(M.Lvl==1?FLoc:ScLoc).document.images[M.rid];RI.style.width=W+P_X;RI.style.height=H+P_X}
		if(M.CCn)this.SizeMenu(M.CCn);
		M=M.PrvMbr}}

this.PosMenu = function(Ct,Tp,Lt){
	RLvl++;
	var a,Mb=Ct.FrstMbr,MWt=parseInt(Mb.style.width)+Mb.lx,
	MHt=parseInt(Mb.style.height)+Mb.tx,CWt=parseInt(Ct.style.width),CHt=parseInt(Ct.style.height),CCw,CCh,STp,SLt,Ti,Li,Hi,
	BRW=RLvl==1?cfg.BorderWidthMain:cfg.BorderWidthSub,BTWn=RLvl==1?cfg.BorderBtwnMain:cfg.BorderBtwnSub;
	if(RLvl==1&&AcrssFrms)!cfg.MenuFramesVertical?Tp=cfg.BottomUp?cfg.DistFrmFrameBrdr:FWinH-CHt-cfg.DistFrmFrameBrdr:Lt=cfg.RightToLeft?cfg.DistFrmFrameBrdr:FWinW-CWt-cfg.DistFrmFrameBrdr;
	if(RLvl==2&&AcrssFrms)!cfg.MenuFramesVertical?Tp=cfg.BottomUp?SWinH-CHt:0:Lt=cfg.RightToLeft?SWinW-CWt:0;
	if(RLvl==2){Tp+=cfg.VerCorrect;Lt+=cfg.HorCorrect}
	Ct.style.top=Ct.mif.style.top=RLvl==1?Tp+P_X:0;Ct.OrgTop=Tp;
	Ct.style.left=Ct.mif.style.left=RLvl==1?Lt+P_X:0;Ct.OrgLeft=Lt;
	if(RLvl<=cfg.FirstLineHorizontal){Hi=1;Li=CWt-MWt-2*BRW;Ti=0}
	else{Hi=Li=0;Ti=CHt-MHt-2*BRW}
	if (RLvl>1)Ti-=cfg.BorderWidthSub+1;
	if (RLvl>1)Li+=cfg.BorderWidthSub+1;
	while(Mb!=null){
		Mb.style.left=Li+BRW+P_X;Mb.style.top=Ti+BRW+P_X;
		if(Mb.CCn){
			if(cfg.RightToLeft)CCw=parseInt(Mb.CCn.style.width);
			if(cfg.BottomUp)CCh=parseInt(Mb.CCn.style.height);
			if(Hi){STp=cfg.BottomUp?Ti-CCh:Ti+MHt+2*BRW;SLt=cfg.RightToLeft?Li+MWt-CCw:Li}
			else{	SLt=cfg.RightToLeft?Li-CCw+cfg.ChildOverlap*MWt+BRW:Li+(1-cfg.ChildOverlap)*MWt+BRW;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -