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

📄 coolmenus4.js

📁 jsp程序开发系统
💻 JS
📖 第 1 页 / 共 2 页
字号:
    st = this.frameStartLevel    this.body = fromframe.document.body    this.doc = fromframe.document    this.deftarget=fromframe    this.cmpage = new cm_page(fromframe)  }else{    this.body=document.body    this.doc=document    if(this.frames) en = this.frameStartLevel    this.deftarget=self  }  if(!nowrite){    for(i=st;i<en;i++){ //changed 4.06      if(!bw.usedom) this.doc.write(c.l[i].str)      else if(i>0) this.body.appendChild(c.l[i].app)      if(!this.frames) c.l[i].str=null    }}c.z=c.zIndex+2  for(i=st;i<en;i++){oc=0    if(i!=0){bobj=c.l[i].b = new cm_makeObj(c.name + "_"+i+"_0","",c.l[i].app,this.doc); bobj.css.zIndex=c.z;     if(bw.dom) bobj.css.overflow='hidden'}; bx=c.l[i].borderX; by=c.l[i].borderY; c.l[i].max=0;    for(j=0;j<c.l[i].m.length;j++){      m = c.m[c.l[i].m[j]]; name=m.name; w=m.w; h=m.h; l=m.lev; no=m.nolink;      if(i>0){m.b = bobj; nest=i}      else{m.b = new cm_makeObj(c.name + "_"+name+"_0","",m.d1,this.doc); m.b.css.zIndex=c.z; m.b.clipTo(0,w+bx*2,h+by*2,0,1); nest=name}      id = c.name + "_"+name; nest=c.name + "_"+nest;      if(m.create){        o=m.o=new cm_makeObj(id,nest+"_0",m.d2,this.doc); o.z=o.css.zIndex=c.z+1; if(bw.reuse){c.l[l].o[oc]=o; oc++};         if(l==0&&m.img1) o.css.visibility='inherit'; if(bw.op5) o.showIt(); o.arr=0;      }if(!bw.reuse||l==0) o.clipTo(0,w,h,0,1); o.moveIt(bx,by); o.z=o.css.zIndex=c.z+2      if(j<c.l[i].arnum){        c.l[i].arr[j]=new cm_makeObj(c.name+"_a"+i+"_"+j,nest+"_0",nowrite?0:c.l[i].arr[j],this.doc)        c.l[i].arr[j].css.zIndex=c.z+30+j;      }else if(l==0&&m.arr==1){        o.arr=new cm_makeObj(id+"_a",nest+"_0",m.d3,this.doc)        o.arr.moveIt(bx+m.w-c.l[i].arrowWidth-3,by+m.h/2-(c.l[i].arrowHeight/2));         o.arr.css.zIndex=c.z+20;      }if(!no && !bw.reuse && !m.img1){          o.over=new cm_makeObj(c.name + "_"+name+"_1",nest+"_0"+".document.layers."+id,"",this.doc)        o.over.moveIt(0,0); o.over.hideIt(); o.over.clipTo(0,w,h,0,1); o.over.css.zIndex=c.z+3        img=new cm_makeObj(c.name + "_"+name+"_3",nest+"_0"+".document.layers."+id,"",this.doc); img.moveIt(0,0)        img.css.visibility="inherit"; img.css.zIndex=c.z+4; if(bw.op5) img.showIt()      }c.z++;     }  }	if(fromframe){	///Set scroll vars - added v4.05		c.chkscroll = function(){//changed 4.06			if (bw.ie&&!bw.ie6) this.scrollY=this.body.scrollTop;			else if (bw.ie6 || bw.op7){				if (this.doc.compatMode && document.compatMode != "BackCompat")	this.scrollY=this.doc.documentElement.scrollTop				else this.scrollY=this.body.scrollTop			}else this.scrollY=this.deftarget.pageYOffset;		}	}}/**Onmouseout**/makeCM.prototype.mout = function(){ //Changed v4.06	var c = this; clearTimeout(c.tim); c.isover = 0; var f="if(!"+c.name+".isover)"+c.name+".hidesub()"  if(!c.closeOnClick) c.tim = setTimeout(f,c.wait)	else{		if(bw.ns4){ document.captureEvents("Event.MOUSEDOWN"); document.onmousedown=new Function(f)}		else document.onclick=new Function(f); 		if(this.frames){			if(bw.ns4){this.doc.captureEvents("Event.MOUSEDOWN"); this.doc.onmousedown=new Function(f)}			else this.doc.onclick=new Function(f)		}	}}/**Constructing and initiating top items and bar**/makeCM.prototype.construct=function(nowrite){ //Changed v4.06  var c=this; if(!c.l[0]||c.l[0].m.length==0) return cm_message('No menus defined');	 if(!nowrite){for(var i=1;i<c.l.length;i++){c.l[i].str+="</div>"}} //Added 4.06  c.makeObjects(nowrite); cmpage = new cm_page();   var mpa,o,maxw=c.maxw,maxh=c.maxh,i,totw=c.totw,toth=c.toth,m,px=c.pxBetween  var bx=c.l[0].borderX,by=c.l[0].borderY,x=c.fromLeft,y=c.fromTop,mp=c.menuPlacement,rows=c.rows  if(rows){toth=maxh+by*2; totw=totw-px+bx;}else{totw=maxw+bx*2; toth=toth-px+by;}  switch(mp){    case "center": x=cmpage.x2/2-totw/2; if(bw.ns4) x-=9; break;    case "right": x=cmpage.x2-totw; break;    case "bottom": case "bottomcenter": y=cmpage.y2-toth; if(mp=="bottomcenter") x=cmpage.x2/2-totw/2; break;    default: if(mp.toString().indexOf(",")>-1) mpa=1; break;  }for(var i=0;i<c.l[0].m.length;i++){    m = c.m[c.l[0].m[i]]; o = m.b; if(mpa) rows?x=cm_cp(mp[i]):y=cm_cp(mp[i],0,0,1);     o.moveIt(x,y); o.showIt(); if(m.arr) m.o.arr.showIt(); o.oy=y;     if(!mpa) rows?x+=m.w+px+bx:y+=m.h+px+by  }if(c.useBar==1){ //Background-Bar    var bbx=c.barBorderX,bby=c.barBorderY;     var bar1=c.bar1= new cm_makeObj(c.name+'bbar_0',c.name+'bbar',nowrite?0:c.bar1,document)    var bar=c.bar= new cm_makeObj(c.name+'bbar','',nowrite?0:c.bar,document); bar.css.zIndex=c.zIndex+1    var barx=c.barX=="menu"?c.m[c.l[0].m[0]].b.x-bbx:cm_cp(c.barX,1);    var bary=c.barY=="menu"?c.m[c.l[0].m[0]].b.y-bby:cm_cp(c.barY);    var barw=c.barWidth=="menu"?totw:cm_cp(c.barWidth,1,bbx*2);    var barh=c.barHeight=="menu"?toth:cm_cp(c.barHeight,0,bby*2);    bar1.clipTo(0,barw,barh,0,1); bar1.moveIt(bbx,bby); bar1.showIt();    bar.clipTo(0,barw+bbx*2,barh+bby*2,0,1); bar.moveIt(barx,bary); bar.showIt();  }if(c.resizeCheck){ //Window resize code - updated 4.06 - stil sucks    if(bw.ns4||bw.op5||bw.op6)setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500)		else window.onresize=new Function(c.name+".resized()")    c.resized=cm_resized; if(bw.op5||bw.op6) document.onmousemove=new Function(c.name+".resized()")  }if(c.onconstruct) eval(c.onconstruct) //onconstruct event  c.constructed = 1 //Added v4.05  return true}/**Capturing resize**/var cm_inresize=0function cm_resized(){  if(cm_inresize) return	page2=new cm_page(); var off=(bw.op6||bw.op5)?20:5  if(page2.x2<cmpage.x2-off || page2.y2<cmpage.orgy-off || page2.x2>cmpage.x2+off || page2.y2>cmpage.orgy+off){		if(bw.ie||bw.ns6||bw.op7||bw.ns4){      cmpage=page2; this.isresized=1;       if(this.onresize) eval(this.onresize); this.construct(1);      if(this.onafterresize) eval(this.onafterresize);		}else{cm_inresize=1; location.reload()}   }}/**Onclick of an item**/makeCM.prototype.onclck=function(m){ //Changed v4.06  m = this.m[m]  if(m.onclck) eval(m.onclck);	if(this.openOnClick && m.subs.length>0){		this.clicked = 1; this.showsub(m.name); return	}   var lnk=m.lnk, targ=m.targ  if(lnk){    if(lnk.indexOf("mailto")!=0 && lnk.indexOf("http")!=0) lnk=this.root+lnk		if(String(targ)=="undefined" || targ=="" || targ==0 || targ=="_self"){      if(this.frames){ //Turning of all level 1 + vars        if(this.l[0].a){          this.m[this.l[0].a].active(0,1)          this.l[0].a =0        }        for(i=this.frameStartLevel;i<this.l.length;i++){          if(this.l[i].b){            this.l[i].b.hideIt()            this.l[i].b = null            for(j=0;j<this.l[i].m.length;j++){              this.m[this.l[i].m[j]].b = null;            }          }        }        this.isover=0      }      this.deftarget.location.href=lnk     }    else if(targ=="_blank") window.open(lnk)    else if(targ=="_top" || targ=="window") top.location.href=lnk    else if(top[targ]) top[targ].location.href=lnk    else if(parent[targ]) parent[targ].location.href=lnk  }else return false}makeCM.prototype.onshow+=";this.pagecheck(b,pm,pm.subx,pm.suby,maxw,maxh)"makeCM.prototype.pagecheck=function(b,pm,x,y,w,h,n){    var l=pm.lev+1,a=b.align; if(!n) n=1  var ok=1  if(x<cmpage.x) {pm.align=1; ok=0;}  else if(x+w>cmpage.x2){ pm.align=2; ok=0;}  else if(y<cmpage.y) { pm.align=3; ok=0;}  else if(h+y>cmpage.y2) {pm.align=4; ok=0;}  if(!ok) this.getcoords(pm,this.l[l-1].borderX,this.l[l-1].borderY,pm.b.x,pm.b.y,w,h,this.l[l-1].offsetX,this.l[l-1].offsetY)  x=pm.subx; y=pm.suby	//Added check --- still not ok? --- part of the code by Denny Caldwell (thanks) -- badly immplemented by me though  if(x<cmpage.x) {x += cmpage.x-x;}  else if(x+w>cmpage.x2){ x = -(x+w-cmpage.x2);}  else if(y<cmpage.y) { y = cmpage.y-y; }  else if(h+y>cmpage.y2) {y = -(y+h-cmpage.y2);}  if(x<cmpage.x) {x += cmpage.x-x;}  else if(x+w>cmpage.x2){ x = -(x+w-cmpage.x2);}  else if(y<cmpage.y) { y = cmpage.y-y;}  else if(h+y>cmpage.y2) {y = -(y+h-cmpage.y2);}	b.moveIt(x,y)  }/******************************************CM_ADD-IN - hideselectboxes (last updated: 11/13/02)IE5+ and NS6+ only - ignores the other browsersBecause of the selectbox bug in the browsers that makes selectboxes have the highest z-index whatever you do this script will check for selectboxes that interfear withyour menu items and then hide them. Just add this code to the coolmenus js fileor link the cm_addins.js file to your page as well.*****************************************/if(bw.dom&&!bw.op){  makeCM.prototype.sel=0  makeCM.prototype.onshow+=";this.hideselectboxes(pm,pm.subx,pm.suby,maxw,maxh,pm.lev)"  makeCM.prototype.hideselectboxes=function(pm,x,y,w,h,l){    var selx,sely,selw,selh,i    if(!this.sel){      this.sel=this.doc.getElementsByTagName("SELECT")		  this.sel.level=0    }    var sel=this.sel    for(i=0;i<sel.length;i++){			selx=0; sely=0; var selp;			if(sel[i].offsetParent){selp=sel[i]; while(selp.offsetParent){selp=selp.offsetParent; selx+=selp.offsetLeft; sely+=selp.offsetTop;}}			selx+=sel[i].offsetLeft; sely+=sel[i].offsetTop			selw=sel[i].offsetWidth; selh=sel[i].offsetHeight						if(selx+selw>x && selx<x+w && sely+selh>y && sely<y+h){				if(sel[i].style.visibility!="hidden"){sel[i].level=l; sel[i].style.visibility="hidden"; if(pm){ if(!pm.mout) pm.mout=""; pm.mout+=this.name+".sel["+i+"].style.visibility='visible';"}}      }else if(l<=sel[i].level && !(pm&&l==0)) sel[i].style.visibility="visible"    }  }}/******************************************CM_ADD-IN - pagecheck (last updated: 08/02/02)Simple code that *tries* to keep the menus inside thebounderies of the page.Code updated. It's still not perfect (obviosly)but it will now do another check to try and place the menus inside.Just add this code to the coolmenus js fileor link the cm_addins.js file to your page.*****************************************/makeCM.prototype.onshow+=";this.pagecheck(b,pm,pm.subx,pm.suby,maxw,maxh)"makeCM.prototype.pagecheck=function(b,pm,x,y,w,h,n){    var l=pm.lev+1,a=b.align; if(!n) n=1  var ok=1  if(x<cmpage.x) {pm.align=1; ok=0;}  else if(x+w>cmpage.x2){ pm.align=2; ok=0;}  else if(y<cmpage.y) { pm.align=3; ok=0;}  else if(h+y>cmpage.y2) {pm.align=4; ok=0;}  if(!ok) this.getcoords(pm,this.l[l-1].borderX,this.l[l-1].borderY,pm.b.x,pm.b.y,w,h,this.l[l-1].offsetX,this.l[l-1].offsetY)  x=pm.subx; y=pm.suby	//Added check --- still not ok? --- part of the code by Denny Caldwell (thanks) -- badly immplemented by me though  if(x<cmpage.x) {x += cmpage.x-x;}  else if(x+w>cmpage.x2){ x = -(x+w-cmpage.x2);}  else if(y<cmpage.y) { y = cmpage.y-y; }  else if(h+y>cmpage.y2) {y = -(y+h-cmpage.y2);}  if(x<cmpage.x) {x += cmpage.x-x;}  else if(x+w>cmpage.x2){ x = -(x+w-cmpage.x2);}  else if(y<cmpage.y) { y = cmpage.y-y;}  else if(h+y>cmpage.y2) {y = -(y+h-cmpage.y2);}	b.moveIt(x,y)  }/******************************************CM_ADD-IN - pagecheck (last updated: 01/26/02)Simple code that *tries* to keep the menus inside thebounderies ofthe page.A more advanced version of this code will come later.Just add this code to the coolmenus js fileor link the cm_addins.js file to your page as well.*****************************************///makeCM.prototype.onshow+=";this.pagecheck2(b,pm,x,y,maxw,maxh)"makeCM.prototype.pagecheck2=function(b,pm,x,y,w,h){  		var fixX = 0		var fixY = 0  	var ok=1		if(x+w>cmpage.x2) {		; 		ok=0;	}else if(x<cmpage.x) {		 ok=0;	}if(y+h>cmpage.y2){		fixY = -(y+h-cmpage.y2);		ok=0;	}else if(y<cmpage.y) {		fixY = cmpage.y-y; 		ok=0;	}//	self.status="x:"+x+" y:" +y+ " fixX:" +fixX+ " fixY:" +fixY  	if(!ok) {				self.status = x + " - " +cmpage.x + " - " + fixX + " - " + (x+fixX)		x+=fixX; 		y+=fixY	  		pm.moveIt(x,y)			self.status = b.css.left	}  }

⌨️ 快捷键说明

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