Слои

 
0
 
JavaScript
ava
Mebios | 18.11.2004, 21:26
Люди помогите такая проблема: имеется выплывающее меню на Javascript к коде которого упоминается о слоях, но я в них совершенно не орентируюсь. КАК здедать чтобы меню было всегда поверх всего остального.(в опере) :stena
Kommentare (5)
ava
sergejzr | 18.11.2004, 22:47 #
Смутно понятно, в чём проблема. Опишите пожалуйста точнее.
И главное, без кода сказать что либо практически не возможно..
ava
Се ля ви | 19.11.2004, 13:19 #
У слоёв есть стилевое свойство z-index, чем больше у него значение - тем больше шансов оказаться всерху, над теми слоями, у которых он меньше.
В опере таблицы отображаются выше, поэтому если слои с ними пересекаются и у них z-index не задан - таблица будет выше. Поэтому просто задавай z-index всем своим слоям:

document.getElementById("divID").style.zIndex = 1;


P.S. К сожалению, сейчас нету dreamweaver`а под рукой, может, я не правильно написал z-index в контексте JavaScript. Если выдаст ошибку - глянь доку по IE свойству style и найди там что-нибуть похожее на zIndex... Или задай его статично в стилях:

#divID {z-index: 1;}
ava
Mebios | 19.11.2004, 13:41 #
Вот описание самого скрипта



/*Browsercheck object*/
function cm_bwcheck(){
this.ver=navigator.appVersion
this.agent=navigator.userAgent.toLowerCase()
this.dom=document.getElementById?1:0
this.op5=(this.agent.indexOf("opera 5")>-1 || this.agent.indexOf("opera/5")>-1) && window.opera
this.op6=(this.agent.indexOf("opera 6")>-1 || this.agent.indexOf("opera/6")>-1) && window.opera
this.ie5 = (this.agent.indexOf("msie 5")>-1 && !this.op5 && !this.op6)
this.ie55 = (this.ie5 && this.agent.indexOf("msie 5.5")>-1)
this.ie6 = (this.agent.indexOf("msie 6")>-1 && !this.op5 && !this.op6)
this.ie4=(this.agent.indexOf("msie")>-1 && document.all &&!this.op5 &&!this.op6 &&!this.ie5&&!this.ie6)
this.ie = (this.ie4 || this.ie5 || this.ie6)
this.mac=(this.agent.indexOf("mac")>-1)
this.ns6=(this.agent.indexOf("gecko")>-1 || window.sidebar)
this.ns4=(!this.dom && document.layers)?1:0;
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.op5 || this.op6)
this.usedom= this.ns6//Use dom creation
this.reuse = this.ie||this.usedom //Reuse layers
this.px=this.dom&&!this.op5?"px":""
return this
}
var bw=new cm_bwcheck()
/*Variable declaration*/
var cmpage,cm_eventlayer=0,cm_eventlayerE=0
/*Crossbrowser objects functions*/
function cm_message(txt){alert(txt); return false}
function cm_makeObj(obj,nest,0){
if(bw.usedom&&o) this.evnt=1
else{nest=(!nest) ? "":'document.layers.'+nest+'.'
this.evnt=bw.dom? document.getElementById(obj):
bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;
}
if(!this.evnt) return cm_message('The layer does not exist ('+obj+')'
+'- \nIf your using Netscape please check the nesting of your tags (on the entire page)\nNest:'+nest)
this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; this.ok=0
this.ref=bw.dom||bw.ie4?document:this.css.document;
this.obj = obj + "Object"; eval(this.obj + "=this");
this.x=0; this.y=0; this.w=0; this.h=0; this.vis=0; return this
}
cm_makeObj.prototype.moveIt = function(x,y){this.x=x;this.y=y; this.css.left=x+bw.px;this.css.top=y+bw.px}
cm_makeObj.prototype.showIt = function(o){this.css.visibility="visible"; this.vis=1; if(bw.op5&&this.arr){ this.arr.showIt(); }}//alert('showing arrow')}}
cm_makeObj.prototype.hideIt = function(no){this.css.visibility="hidden"; this.vis=0;}
cm_makeObj.prototype.clipTo = function(t,r,b,l,setwidth){
this.w=r; this.h=b; if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r; this.css.clip.bottom=b;this.css.clip.left=l
}else{if(t<0)t=0;if(r<0)r=0;if(b<0)b=0;if(b<0)b=0; this.css.clip="rect("+t+bw.px+","+r+bw.px+","+b+bw.px+","+l+bw.px+")";
if(setwidth){if(bw.op5||bw.op6){this.css.pixelWidth=r; this.css.pixelHeight=b;}else{this.css.width=r+bw.px; this.css.height=b+bw.px;}}}}
function cm_active(on,h){
if(this.o.arr) on?this.o.arr.hideIt():bw.op5?this.o.arr.showIt():this.o.arr.css.visibility="inherit"
if(bw.reuse||bw.usedom){
if(!this.img2) this.o.evnt.className=on?this.cl2:this.cl
else document.images["img"+this.name].src=on?this.img2.src:this.img1.src;
if(on && bw.ns6){this.o.hideIt(); this.o.css.visibility='inherit' }; //netscape 6 bug fix
}else{
if(!this.img2){ if(on) this.o.over.showIt(); else this.o.over.hideIt();
}else this.o.ref.images["img"+this.name].src=on?this.img2.src:this.img1.src;
}this.isactive=on?1:0
}
/***Pageobject **/
function cm_page(){
this.x=0; this.x2 =(!bw.ie)?window.innerWidth:document.body.offsetWidth-20;
this.y=0; this.orgy=this.y2= (!bw.ie)?window.innerHeight:document.body.offsetHeight-6;
this.x50=this.x2/2; this.y50=this.y2/2; return this
}
/***check positions**/
function cm_cp(num,w,minus){
if(num){if(num.toString().indexOf("%")!=-1){var t = w?cmpage.x2:cmpage.y2; num=parseInt((t*parseFloat(num)/100))
if(minus) num-=minus }else num=eval(num);} else num=0; return num
}
/**Level object**/
function cm_makeLevel(){
var c=this, a=arguments; c.width=a[0]||null; c.height=a[1]||null;
c.regClass=a[2]||null; c.overClass=a[3]||null; c.borderX=a[4]||null;
c.borderY=a[5]||null; c.borderClass=a[6]||null; c.rows=a[7]>-1?a[7]:null;
c.align=a[8]||null; c.offsetX=a[9]||null; c.offsetY=a[10]||null; c.arrow=a[11]||null;
c.arrowWidth=a[12]||null; c.arrowHeight=a[13]||null; return c
}
/***Making the main menu object**/
function makeCM(name){
var c=this; c.mc=0; c.name = name; c.m=new Array(); c.level=new Array(); c.l=new Array(); c.tim=100; c.isresized=0;
c.isover=0; c.zIndex=100; c.bar=0; c.z=0; c.totw=0; c.toth=0; c.maxw=0; c.maxh=0; cmpage = new cm_page();
}//events
makeCM.prototype.onshow=""; makeCM.prototype.onhide=""; makeCM.prototype.onconstruct="";
/***Creating layers**/
function cm_divCreate(id,cl,txt,w,c,app,ex,txt2){
if(bw.usedom){var div=document.createElement("DIV"); div.className=cl; div.id=id;
if(txt) div.innerHTML=txt; if(app){app.appendChild(div); return div}
if(w) document.body.appendChild(div); return div
}else{var dstr='<div id="'+id+'" class="'+cl+'"'
if(ex&&bw.reuse) dstr+=" "+ex; dstr+=">"+txt;; if(txt2) dstr+=txt2;
if(c) dstr+='</div>'; if(w) document.write(dstr); else return dstr
}return ""
}
/***Getting layer string for each menu**/
function cm_getLayerStr(m,app,name,fill,clb,arrow,ah,aw,root){
var no=m.nolink,arrstr='',l=m.lev,str='',txt=m.txt,ev='', id=name + '_' + m.name,d1; if(app) d1=app
if((!bw.reuse||l==0) && !no){
ev=' onmouseover="'+name+'.showsub(\''+m.name+'\')"'
+' onmouseout="'+name+'.mout(\''+m.name+'\')"' //Added 4.02
+' onclick="'+name+'.onclck(\''+m.name+'\'); return false" '
}
if(bw.reuse&&l!=0) txt=''; if(l==0) str+=d1=cm_divCreate(id+'_0',clb,''); str+=m.d1=cm_divCreate(id,m.cl,txt,0,0,d1,ev)
if(l==0&&bw.usedom){
m.d2.onclick=new Function(name+'.onclck("'+m.name+'")');
m.d1=d1;
m.d2.onmouseover=new Function(name+'.showsub("'+m.name+'")');
m.d2.onmouseout=new Function(name+'.mout("'+m.name+'")') //Added 4.02
}if(!bw.reuse && !m.img1 && !no){
str+=cm_divCreate(id+'_1',m.cl2,txt,0,1)
str+=cm_divCreate(id+'_3',"clCMAbs",'<a href="#" '+ev+'><img alt="" src="'+root+fill+'" width="'+m.w+'" height="'+m.h+'" border="0" /></a>',0,1)
}str+='</div>';
if(l==0){if(arrow)str+=m.d3=cm_divCreate(id+'_a','clCMAbs','<img alt="" height="'+aw+'" width="'+ah+'" src="'+root+arrow+'" />',0,1,d1); str+="</div>"}
str+="\n"; if(!bw.reuse){m.txt=null; m.d2=null; m.d3=null;}
if(bw.usedom){ if(l==0) document.body.appendChild(d1); str=''}
return str
}
/***get align num from text (better to evaluate numbers later)**/
function cm_checkalign(a){
switch(a){
case "right": return 1; break; case "left": return 2; break;
case "bottom": return 3; break; case "top": return 4; break;
case "righttop": return 5; break; case "lefttop": return 6; break;
case "bottomleft": return 7; break; case "topleft": return 8; break;
}return null
}
/**Making each individual menu **/
makeCM.prototype.makeMenu=function(name,parent,txt,lnk,targ,w,h,img1,img2,cl,cl2,align,rows,nolink,onclick,onmouseover,onmouseout){
var c = this; if(!name) name = c.name+""+c.mc; var p = parent!=""&&parent&&c.m[parent]?parent:0;
if(c.mc==0){var tmp=location.href;
if(tmp.indexOf('file:')>-1||tmp.charAt(1)==':') c.root=c.offlineRoot; else c.root=c.onlineRoot
if(c.useBar){if(!c.barBorderClass) c.barBorderClass=c.barClass; c.bar1 = cm_divCreate(c.name+'bbar_0',c.barClass,'',0,1);
c.bar = cm_divCreate(c.name+'bbar',c.barBorderClass,'',1,1,0,0,c.bar1); if(bw.usedom) c.bar.appendChild(c.bar1);
}}var create=1,img,arrow; var m = c.m[name] = new Object(); m.name=name; m.subs=new Array(); m.parent=p; m.arnum=0; m.arr=0
var l = m.lev = p?c.m[p].lev+1:0; c.mc++; m.hide=0;
if(l>=c.l.length){
var p1,p2=0; if(l>=c.level.length) p1=c.l[c.level.length-1];
else p1=c.level[l]; c.l[l]=new Array(); if(!p2) p2=c.l[l-1]
if(l!=0){ if(isNaN(p1.align)) p1["align"]=cm_checkalign(p1.align)
for(i in p1){if(i!="str"&&i!="m"){if(p1[i]==null) c.l[l][i]=p2[i]; else c.l[l][i]=p1[i] }}
}else{c.l[l]=c.level[0]; c.l[l].align=cm_checkalign(c.l[l].align)}
c.l[l]["str"]=''; c.l[l].m=new Array(); if(!c.l[l].borderClass) c.l[l].borderClass=c.l[l].regClass
c.l[l].app=0; c.l[l].max=0; c.l[l].arnum=0; c.l[l].o=new Array(); c.l[l].arr=new Array()
c.level[l]=p1=p2=null
if(l!=0) c.l[l].str=c.l[l].app=cm_divCreate(c.name+ '_' +l+'_0',c.l[l].borderClass,'')
}if(p){p = c.m[p]; p.subs[p.subs.length]=name;
if(p.subs.length==1&&c.l[l-1].arrow){ p.arr=1;
if(p.parent){c.m[p.parent].arnum++
if(c.m[p.parent].arnum>c.l[l-1].arnum){
c.l[l-1].str+=c.l[l-1].arr[c.l[l-1].arnum]=cm_divCreate(c.name+ '_a' +(l-1)+'_'+c.l[l-1].arnum,'clCMAbs','<img height="'+c.l[l-1].arrowHeight
+'" width="'+c.l[l-1].arrowWidth+'" src="'+c.root+c.l[l-1].arrow+'" alt="" /><br>',0,1,c.l[l-1].app); c.l[l-1].arnum++
}}}if(bw.reuse) if(p.subs.length>c.l[l].max) c.l[l].max = p.subs.length; else create=0
}m.rows=rows>-1?rows:c.l[l].rows; m.w=cm_cp(w||c.l[l].width,1); m.h=cm_cp(h||c.l[l].height,0); m.txt=txt; m.lnk=lnk;
if(align) align=cm_checkalign(align); m.align=align||c.l[l].align; m.cl=cl=cl||c.l[l].regClass;
m.targ=targ; m.cl2=cl2||c.l[l].overClass; m.create=create; m.mover=onmouseover; m.out=onmouseout;
m.onclck=onclick; m.active = cm_active; m.isactive=0; m.nolink=nolink
if(create) c.l[l].m[c.l[l].m.length]=name
if(img1){m.img1 = new Image(); m.img1.src=c.root+img1; if(!img2) img2=img1; m.img2 = new Image(); m.img2.src=c.root+img2;
m.cl="clCMAbs"; m.txt=''; if(!bw.reuse&&!nolink) m.txt = '<a href="#" onmouseover="'+c.name+'.showsub(\''+name+'\')" onmouseout="'+c.name+'.mout(\''+name+'\')" onclick="'+c.name+'.onclck(\''+name+'\'); return false"><br>';;
m.txt+='<img alt="" src="'+c.root+img1+'" width="'+m.w+'" height="'+m.h+'" id="img'+m.name+'" '
if(bw.dom&&!nolink) m.txt+='style="cursor:pointer; cursor:hand"'; if(!bw.reuse){if(!bw.dom) m.txt+='name="img'+m.name+'"'; m.txt+=' border="0"'}; m.txt+=' /><br>'; if(!bw.reuse&&!nolink) m.txt+='</a>'
}else{m.img1=0; m.img2=0};
if(l==0||create) c.l[l].str+=cm_getLayerStr(m,c.l[l].app,c.name,c.fillImg,c.l[l].borderClass,c.l[l].arrow,c.l[l].arrowWidth,c.l[l].arrowHeight,c.root)
if(l==0){if(m.w>c.maxw) c.maxw=m.w; if(m.h>c.maxh) c.maxh=m.h; c.totw+=c.pxBetween+m.w+c.l[0].borderX;c.toth+=c.pxBetween+m.h+c.l[0].borderY}
if(lnk && !onmouseover) m.mover="self.status='"+c.root+m.lnk+"'"
}
/**Getting x/y coords for subs **/
makeCM.prototype.getcoords=function(m,bx,by,x,y,maxw,maxh,ox,oy){
var a=m.align; x+=m.o.x; y+=m.o.y
switch(a){
case 1: x+=m.w+bx; break; case 2: x-=maxw+bx; break;
case 3: y+=m.h+by; break; case 4: y-=maxh+by; break;
case 5: x-=maxw+bx; y-=maxh-m.h; break;
case 6: x+=m.w+bx; y-=maxh-m.h; break;
case 7: y+=m.h+by; x-=maxw-m.w; break;
case 8: y-=maxh+by; x-=maxw-m.w+bx; break;
}m.subx=x + ox; m.suby=y + oy
}
/**Showing sub elements**/
makeCM.prototype.showsub=function(el){
var c=this,pm=c.m[el];
//alert('level = ' + pm.lev);
if(!pm.b||(c.isresized&&pm.lev>0)) pm.b=c.l[pm.lev].b; c.isover=1
clearTimeout(c.tim);
var ln=pm.subs.length,l=pm.lev+1
if(c.l[pm.lev].a==el&&l!=c.l.length){if(c.l[pm.lev+1].a) c.hidesub(l+1,el); return}
c.hidesub(l,el); if(pm.mover) eval(pm.mover); if(!pm.isactive) pm.active(1);
c.l[pm.lev].a = el; if(ln==0) return;
var b = c.l[l].b, bx=c.l[l].borderX, by=c.l[l].borderY, rows=pm.rows
var x=bx,y=by,maxw=0,maxh=0,cn=0; b.hideIt()
for(var i=0;i<c.l[l].m.length;i++){
if(!bw.reuse) m=c.m[c.l[l].m[i]]
else m=c.m[c.m[el].subs[i]]
if(m && m.parent==el&&!m.hide){
if(!bw.reuse) o=m.o; else o=m.o=c.l[l].o[i]
if(x!=o.x||y!=o.y) o.moveIt(x,y); nl=m.subs.length
if(bw.reuse){
if(o.w!=m.w || o.h!=m.h) o.clipTo(0,m.w,m.h,0,1)
if(o.evnt.className!=m.cl){
m.isactive=0; o.evnt.className=m.cl
if(bw.ns6){o.hideIt(); o.css.visibility='inherit'} //NS6 bugfix
}if(bw.ie6) b.showIt()//IE6 bugfix (scrollbars)
o.evnt.innerHTML=m.txt; if(bw.ie6) b.hideIt()
if(!m.nolink){
o.evnt.onmouseover=new Function(c.name+".showsub('"+m.name+"')")
o.evnt.onmouseout=new Function(c.name+".mout('"+m.name+"')") //Added 4.02
o.evnt.onclick=new Function(c.name+".onclck('"+m.name+"')")
if(o.oldcursor){o.css.cursor=o.oldcursor; o.oldcursor=0;}
}else{o.evnt.onmouseover=''; o.evnt.onclick=''; if(o.css.cursor=='') o.oldcursor=bw.ns6?"pointer":"hand"; else o.oldcursor=o.css.cursor; o.css.cursor="auto"}
}if(m.arr){o.arr=c.l[l].arr[cn]; o.arr.moveIt(x + m.w-c.l[l].arrowWidth-3,y+m.h/2-(c.l[l].arrowHeight/2));
o.arr.css.visibility="inherit"; cn++;} else o.arr=0
if(!rows){y+=m.h+by; if(m.w>maxw) maxw=m.w; maxh=y}
else{x+=m.w+bx; if(m.h>maxh) maxh=m.h; maxw=x;}
o.css.visibility="inherit"; if(bw.op5||bw.op6) o.showIt()
}else{o = c.m[c.l[l].m[i]].o; o.hideIt();} }
if(!rows) maxw+=bx*2; else maxh+=by*2; b.clipTo(0,maxw,maxh,0,1)
if(!pm.subx||!pm.suby||c.srollY>0||c.isresized) c.getcoords(pm,c.l[l-1].borderX,c.l[l-1].borderY,pm.b.x,pm.b.y,maxw,maxh,c.l[l-1].offsetX,c.l[l-1].offsetY)
//x=pm.subx; y=pm.suby; b.moveIt(x,y); if(c.onshow) eval(c.onshow); b.showIt()
//Изменено для того, что бы потомки открывались на одном уровне - у верхнего пункта корневого меню
if(c.order==0){//Если вертикальное меню
if(pm.lev==0){x=pm.subx; y=184+c.l[0].borderY;}//если родитель - нулевой уровень
else{x=pm.subx; y=pm.suby;//если родитель - первый уровень
if(y>400) y=y-maxh;//если сползаем вниз экрана - поднятся на высоту подменю и отступить высоту одной строки
}
}
else{x=pm.subx; y=pm.suby;}//если горизонтальное меню
b.moveIt(x,y); if(c.onshow) eval(c.onshow); b.showIt();
}
/**Hide sub elements **/
makeCM.prototype.hidesub=function(l,el){
var c = this,tmp,m,i,j
if(!l){if(!l) l=1;}
for(i=l-1;i<c.l.length;i++){
if(i>0&&i>l-1) c.l[i].b.hideIt()
if(c.l[i].a&&c.l[i].a!=el){
m=c.m[c.l[i].a]; m.active(0,1); if(m.mout) eval(m.mout); c.l[i].a=0
if(i>0&&i>l-1) if(bw.op5||bw.op6) for(j=0;j<c.l[i].m.length;j++) c.m[c.l[i].m[j]].o.hideIt()
}if(i>l){for(j=0;j<c.l[i-1].arnum;j++){c.l[i-1].arr[j].hideIt(); if(bw.op6) c.l[i-1].arr[j].moveIt(-1000,-1000)}} //opera bug
}if(!l&&c.onhide) eval(c.onhide) //onhide event
}
/***Make all menu div objects**/
makeCM.prototype.makeObjects=function(nowrite){
var c = this,oc,name,bx,by,w,h,l,no,ar,id,nest
if(!nowrite){
for(i=0;i<c.l.length;i++){
if(i!=0) c.l[i].str+="</div>"
if(!bw.usedom) document.write(c.l[i].str)
else if(i>0) document.body.appendChild(c.l[i].app)
c.l[i].str=null //Probably need this on frames version though
}}c.z=c.zIndex+2
for(i=0;i<c.l.length;i++){oc=0
if(i!=0){bobj=c.l[i].b = new cm_makeObj(c.name + "_"+i+"_0","",c.l[i].app); 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); 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); 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])
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)
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)
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); img.moveIt(0,0)
img.css.visibility="inherit"; img.css.zIndex=c.z+4; if(bw.op5) img.showIt()
}c.z++;
}
}
}
/**Onmouseout**/ //Added 4.02
makeCM.prototype.mout = function(){
var c = this;
clearTimeout(c.tim)
c.isover = 0
c.tim = setTimeout("if(!"+c.name+".isover)"+c.name+".hidesub()",c.wait)
}
/**Constructing and initiating top items and bar**/
makeCM.prototype.construct=function(nowrite){
var c=this; if(!c.l[0]||c.l[0].m.length==0) return cm_message('No menus defined');
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(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){ //Background-Bar
bbx=c.barBorderX; bby=c.barBorderY;
bar1=c.bar1= new cm_makeObj(c.name+'bbar_0',c.name+'bbar',nowrite?0:c.bar1)
bar=c.bar= new cm_makeObj(c.name+'bbar','',nowrite?0:c.bar); bar.css.zIndex=c.zIndex+1
//bar.evnt.onmouseover=new Function(cm_eventlayerE)
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.
setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500)
c.resized=cm_resized; if(bw.op5||bw.op6) document.onmousemove=new Function(c.name+".resized()")
}if(c.onconstruct) eval(c.onconstruct) //onconstruct event
return true
}
/**Capturing resize**/
var cm_inresize=0
function cm_resized(){
if(cm_inresize) return
page2=new cm_page(); var off=(bw.op6||bw.op5)?15: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){
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){
m = this.m[m]
if(m.onclck) eval(m.onclck);
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") 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
}

bw.filter=(bw.ie55||bw.ie6) && !bw.mac
makeCM.prototype.onshow+=";if(c.l[pm.lev].filter) b.filterIt(c.l[pm.lev].filter)"
cm_makeLevel.prototype.filter=null
cm_makeObj.prototype.filterIt=function(f){
/* comment by Gulyaev V
if(bw.filter){
if(this.evnt.filters[0]) this.evnt.filters[0].Stop();
else this.css.filter=f;
this.evnt.filters[0].Apply();
this.showIt();
this.evnt.filters[0].Play();
}
*/
}

makeCM.prototype.onshow+="; if(c.l[pm.lev].slidepx){b.moveIt(x,b.y-b.h); b.showIt(); b.tim=null; b.slide(y,c.l[pm.lev].slidepx,c.l[pm.lev].slidetim,c,pm.lev,pm.name)}"
makeCM.prototype.going=0
cm_makeObj.prototype.tim=10;
cm_makeLevel.prototype.slidepx=null
cm_makeLevel.prototype.slidetim=30
cm_makeObj.prototype.slide=function(end,px,tim,c,l,name){
if(!this.vis || c.l[l].a!=name) return
if(this.y<end-px){
if(this.y>(end-px*px-px) && px>1) px-=px/5; this.moveIt(this.x,this.y+px)
this.clipTo(end-this.y,this.w,this.h,0)
this.tim=setTimeout(this.obj+".slide("+end+","+px+","+tim+","+c.name+","+l+",'"+name+"')",tim)
}else{this.moveIt(this.x,end)}
}




а вот скрипт который находится в самой странице html




<script language="JavaScript1.2">
<!--
oCMenu=new makeCM("oCMenu")
oCMenu.pxBetween=6;
oCMenu.fromLeft=250
oCMenu.fromTop=140
oCMenu.rows=1
oCMenu.menuPlacement=0;

oCMenu.onlineRoot=""
oCMenu.offlineRoot=oCMenu.onlineRoot

oCMenu.resizeCheck=1
oCMenu.wait=1000
oCMenu.fillImg="img/fon.gif"
oCMenu.zIndex=100

oCMenu.useBar=0

oCMenu.level[0]=new cm_makeLevel()
oCMenu.level[0].width=180
oCMenu.level[0].height=20
oCMenu.level[0].regClass="clLevel0"
oCMenu.level[0].overClass="clLevel0over"
oCMenu.level[0].borderX=1
oCMenu.level[0].borderY=1
oCMenu.level[0].offsetY=2
oCMenu.level[0].offsetX=0
oCMenu.level[0].rows=0
oCMenu.level[0].align="bottom"
oCMenu.level[0].slidepx=0 // 10
oCMenu.level[0].slidetim=20 // Slide time default 20
oCMenu.level[0].filter="alpha(opacity=100)";

oCMenu.level[1]=new cm_makeLevel();
oCMenu.level[1].width=200
oCMenu.level[1].height=26
oCMenu.level[1].regClass="clLevel1"
oCMenu.level[1].overClass="clLevel1over"
oCMenu.level[1].borderX=1
oCMenu.level[1].borderY=1
oCMenu.level[1].borderClass="clLevel1border"
oCMenu.level[1].offsetX=1
oCMenu.level[1].offsetY=0
oCMenu.level[1].arrow=""
oCMenu.level[1].arrowWidth=3
oCMenu.level[1].arrowHeight=5
oCMenu.level[1].align="right"

oCMenu.order = 1

oCMenu.makeMenu('134','123','<img src="img/a_1.jpg" width=79 border=0>','09.htm','');

oCMenu.makeMenu('125','134','Официальное название и реквизиты','09_1.htm','');
oCMenu.makeMenu('127','134','Организационная структура','09_2.htm','');
oCMenu.makeMenu('128','127','Структура Управления','09_2_1.htm','');
oCMenu.makeMenu('129','127','Руководство','09_2_2.htm','');
oCMenu.makeMenu('130','127','Представительства','09_2_3.htm','');

oCMenu.makeMenu('200','123','<img src="img/a_2.jpg" width=147 border=0>','10.htm','');
oCMenu.makeMenu('201','124','<img src="img/a_3.jpg" width=51 border=0>','11.htm','');
oCMenu.construct();

//-->
</script>
<script language="JavaScript1.2">
<!--
oCMenuVert=new makeCM("oCMenuVert")
oCMenuVert.pxBetween=0
oCMenuVert.fromLeft=0
oCMenuVert.fromTop=184
oCMenuVert.rows=0
oCMenuVert.menuPlacement=0

oCMenuVert.onlineRoot=""
oCMenuVert.offlineRoot=oCMenuVert.onlineRoot


oCMenuVert.wait=1000
oCMenuVert.fillImg="img/fon.gif"

oCMenuVert.level[0]=new cm_makeLevel()
oCMenuVert.level[0].width=228
oCMenuVert.level[0].height=40
oCMenuVert.level[0].regClass="cl2Level0"
oCMenuVert.level[0].overClass="cl2Level0over"
oCMenuVert.level[0].borderX=1
oCMenuVert.level[0].borderY=1
oCMenuVert.level[0].offsetY=0
oCMenuVert.level[0].offsetX=229
oCMenuVert.level[0].rows=0
oCMenuVert.level[0].align="middle"
oCMenuVert.level[0].slidepx=0 // 10
oCMenuVert.level[0].slidetim=20 // Slide time default 20
oCMenuVert.level[0].filter="alpha(opacity=100)";

oCMenuVert.level[1]=new cm_makeLevel();
oCMenuVert.level[1].height=28
oCMenuVert.level[1].regClass="cl2Level1"
oCMenuVert.level[1].overClass="cl2Level1over"
oCMenuVert.level[1].borderX=1
oCMenuVert.level[1].borderY=1
oCMenuVert.level[1].borderClass="cl2Level1border"
oCMenuVert.level[1].offsetX=0
oCMenuVert.level[1].offsetY=1
oCMenuVert.level[1].arrow=""
oCMenuVert.level[1].arrowWidth=3
oCMenuVert.level[1].arrowHeight=5
oCMenuVert.level[1].align="right"

oCMenuVert.order = 1

oCMenuVert.makeMenu('9','','<img src="img/home.jpg" width=100% border=0>','index.htm','');
oCMenuVert.makeMenu('10','','<img src="img/zakon.jpg" width=100% border=0>','02.htm','');
oCMenuVert.makeMenu('11','10','Закон 1','02_1.htm','');
oCMenuVert.makeMenu('12','10','Закон 2','02_2.htm','');
oCMenuVert.makeMenu('14','10','Закон 3','02_3.htm','');
oCMenuVert.makeMenu('15','10','Закон 4','02_4.htm','');
oCMenuVert.makeMenu('16','10','Закон 5','02_5.htm','');
oCMenuVert.makeMenu('17','10','Закон 6','02_6.htm','');
oCMenuVert.makeMenu('18','10','Закон 7','02_7.htm','');
oCMenuVert.makeMenu('19','10','Закон 8','02_8.htm','');
oCMenuVert.makeMenu('20','','<img src="img/Activity.jpg" width=100% border=0>','03.htm','');
oCMenuVert.makeMenu('21','20','Лицензии','03_1.htm','');
oCMenuVert.makeMenu('22','20','ПСБ','03_2.htm','');
oCMenuVert.makeMenu('23','20','х','03_3.htm','');
oCMenuVert.makeMenu('24','20','х','03_4.htm','');
oCMenuVert.makeMenu('25','20','х','03_5.htm','');
oCMenuVert.makeMenu('26','20','x','03_6.htm','');
oCMenuVert.makeMenu('27','20','x','03_7.htm','');
oCMenuVert.makeMenu('28','20','x','03_8.htm','');
oCMenuVert.makeMenu('30','','<img src="img/export.jpg" width=100% border=0>','04.htm','');
oCMenuVert.makeMenu('31','30','Текст','04_1.htm','');
oCMenuVert.makeMenu('32','30','Курган','04_2.htm','');
oCMenuVert.makeMenu('33','30','Екатерибург','04_3.htm','');
oCMenuVert.makeMenu('34','30','Челябинск','04_4.htm','');
oCMenuVert.makeMenu('35','30','Тюмень','04_5.htm','');
oCMenuVert.makeMenu('36','30','ХМАО','04_6.htm','');
oCMenuVert.makeMenu('37','30','ЯНАО','04_7.htm','');
oCMenuVert.makeMenu('40','','<img src="img/databas1.jpg" width=100% border=0>','05.htm','');
oCMenuVert.makeMenu('50','','<img src="img/databas2.jpg" width=100% border=0>','06.htm','');
oCMenuVert.makeMenu('60','','<img src="img/databas3.jpg" width=100% border=0>','07.htm','');
oCMenuVert.makeMenu('61','60','Тендеры, конкурсы, потребности','07_1.htm','');
oCMenuVert.makeMenu('62','60','Предложения о сотрудничестве','07_2.htm','');
oCMenuVert.makeMenu('70','','<img src="img/inform.jpg" width=100% border=0>','08.htm','');
oCMenuVert.makeMenu('71','70','Конъюнктура','08_1.htm','');
oCMenuVert.makeMenu('72','70','x','08_2.htm','');
oCMenuVert.makeMenu('73','70','x','08_3.htm','');
oCMenuVert.makeMenu('74','70','x','08_4.htm','');


oCMenuVert.construct()
//-->
</script>

Это две меню и все находятся слоём ниже
Прбовал и z-index и другое но ничего не получается(в Опере), причём в ИЕ всё как должно быть
später ergänzt:
Я понятия не имею что здесь на что нужно изменять или добавлять поэтому я скопировал весь код. :stena
ava
guest | 19.11.2004, 15:24 #
мдааа
ну что тебе сказать у меня текст дипломной работы (исходник) был нааааааамного меньше
посоветовал бы тебе сделать ту часть которая тебя интересует под оперу (всячески обрезанную) и посмотреть в чем рассхождение
а смотреть то что ты сюда кинул ......
не у каждого терпения хватит и желания
ava
Mebios | 21.11.2004, 18:39 #
Извиниет за такуйю наглость, но я в слоях ничего не понимаю, посоветуйте откуда можно скачать пример со слоями которые действительно работают smile
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden