flashtu: Frontpage und Javascript Frame Probleme...

Beitrag lesen

Hallo Dieter,

sorry wie gesagt ich habe vom Programieren nicht so die Ahnung, das Script habe ich mir aus dem Netz gezogen und nach Anleitung umgebaut soweit ich konnte.

Das hier steht im *.js:

function makeMenuObj(obj,nest){  nest=(!nest) ? "":'document.'+nest+'.'  this.evnt = document.getElementById?document.getElementById(obj):document.all?document.all[obj]:document.layers?eval(nest+'document.'+obj):0;  this.css = this.evnt.style?this.evnt.style:this.evnt;  this.ref=document.layers?this.evnt.document:document;  this.x=this.css.left||this.evnt.offsetLeft;  this.y=this.css.top||this.evnt.offsetTop;  this.hideIt=b_hideIt; this.showIt=b_showIt; this.movey=b_movey  this.moveIt=b_moveIt; this.moveBy=b_moveBy; this.status=0;  this.bgImg=b_bgImg; this.obj = obj + "Object"; eval(this.obj + "=this");  this.clipTo=b_clipTo;  return this } function b_showIt(){this.css.visibility="visible"; this.status=1} function b_hideIt(){this.css.visibility="hidden"; this.status=0} function b_movey(y){this.y=y; this.css.top=this.y} function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x;this.css.top=this.y} function b_moveBy(x,y){this.x=this.x+x; this.y=this.y+y; this.css.left=this.x;this.css.top=this.y} function b_bgImg(img){  if(document.getElementById) document.getElementById(this.id+"img").src = img  else if(document.layers) this.ref.layers[0].document.images[0].src = img  else document.images[this.id+"img"].src = img } function b_clipTo(t,r,b,l,w){if(document.layers){this.css.clip.top=t;this.css.clip.right=r this.css.clip.bottom=b;this.css.clip.left=l }else{this.css.clip="rect("+t+"px,"+r+"px,"+b+"px,"+l+"px)"; if(w){this.css.pixelWidth=this.css.width=r; this.css.pixelHeight=this.css.height=b}}} /******************************************************************************** Initiating page, making objects.. ********************************************************************************/ createSlideMenu.prototype.init = function(){  document.write("</div>")  this.cont=new makeMenuObj(this.name+'cont')  this.cont.moveIt(this.menux,this.menuy)  var yy = 0, el  //Make top menus  for(var j=0;j<this.topmenus.length;j++){   el = this.menus[this.topmenus[j]]   el.o = new makeMenuObj(this.name+""+el.num,this.name+"cont")   el.o.moveIt(this.l[0].left,yy); el.top = j; el.origy = yy   el.o.id = el.id; el.o.status=1;   el.o.h = this.l[0].height; el.img = this.l[0].regImage   yy+=el.o.h + this.l[0].between; el.o.clipTo(0,this.l[0].width,el.o.h,0,1)   if(j!=this.topmenus.length-1) el.nexttop = this.topmenus[el.top+1]   this.loop(el.num,j)  }  this.cont.showIt(); this.cont = null; this.level = null; } createSlideMenu.prototype.loop = function(num,j){  var el = this.menus[num],temp,p,h,w,y,img  for(var i=0;i<el.childs.length;i++){   temp = el.childs[i]   w = this.l[temp.lev].width; h = this.l[temp.lev].height   y = el.o.y+el.o.h + hi + this.l[temp.lev].betweeni + this.l[temp.lev].between   temp.o = new makeMenuObj(this.name+""+temp.num,this.name+"cont")   temp.o.hideIt(); temp.o.clipTo(0,w,h,0,1)   temp.o.moveIt(this.l[temp.lev].left,y)   el.endy =y+h; temp.origy = y   temp.o.zIndex=temp.num   temp.o.h = h; temp.top = j   temp.chnum = i; temp.o.id = temp.id   if(this.useImages){ //Setting bgimage    img=""    if(temp.childs.length>0){ //With subs     if(i==el.childs.length-1) img=this.l[temp.lev].subRound     else img=this.l[temp.lev].subImg    }else if(i==el.childs.length-1){     img=this.l[temp.lev].roundImg2    }    if(img){     temp.o.bgImg(img); temp.img = img    }else temp.img = this.l[temp.lev].regImage   }   p = this.menus[temp.parent] //Setting the next elements   if(temp.chnum != p.childs.length-1){ //Not the last el    temp.nextel = p.childs[temp.chnum+1].num    temp.nexttop = temp.lev==1?p.nexttop:p.nextel   }else{ //Last el, so we only have nexttop    temp.nexttop = p.nextel    if(temp.nexttop==-1) temp.nexttop = p.nexttop   }   if(temp.childs.length>0){    this.loop(temp.num,j) //Recursive call   }  } }

/******************************************************************************** Moving all objects in the array after a provided array number / createSlideMenu.prototype.moveItems = function(px,num){  for(i=num;i<this.menus.length;i++){   if(this.menus[i].o.status){ //Moving all visible menus    this.menus[i].o.movey(this.menus[i].o.y+px)   }  } } / Switch menu function. / createSlideMenu.prototype.switchMenu = function(num){  if(this.going) return  var m = this.menus[num]  if(m.childs.length==0) return  this.going = 1  var y=m.o.y+ m.o.h +this.l[m.lev].between  var clnum = m.num, olev = m.lev, onext = m.nextel  if(this.active[0]>-1){   var n = -1   if(m.lev>0){    if(this.active[m.lev]>-1) n=this.active[m.lev]    else n=this.active[m.lev-1]   }else n = this.active[0]   m = this.menus[n]   if(m.lev == 0 && olev==0) y = m.nexttop!=-1?this.menus[m.nexttop].origy:-1   else if(clnum!=m.num){    var ny = m.o.y + m.o.h + this.l[m.lev].between    if(clnum>m.num && olev==m.lev) y = Math.min(ny,y)    else if(onext==m.num) y = Math.max(ny,y)   }  }  this.moveUp(m.nextel!=-1?m.nextel:m.nexttop,num,y) } / Move items up / createSlideMenu.prototype.moveUp = function(top,num,y){  var move = 0, m, yy=0;  if(this.active[0]>-1 && top>-1){   m = this.menus[top]   if(m.o.y>y){    if((m.o.y-this.pxspeed)<y) yy = -(((m.o.y-y)))    else yy=-this.pxspeed; this.moveItems(yy,top)    move=1   }  }  if(move) setTimeout(this.name+".moveUp("+top+","+num+","+y+")",this.timspeed)  else{   m = this.menus[num]   for(var i=m.lev;i<this.active.length;i++){ //Reset images - actives et cetera    if(this.active[i]>-1){     temp = this.menus[this.active[i]]     temp.o.moveIt(temp.o.x-this.inset,temp.o.y)     if(this.useImages) temp.o.bgImg(temp.img)   //Change bg     if(this.arrow) temp.ar.replaceChild(document.createTextNode("4"),temp.ar.childNodes[0])     ch = temp.childs     for(var j=0;j<ch.length;j++){      ch[j].o.hideIt(); ch[j].o.movey(ch[j].origy)     }     this.active[i] = -1    }   }   //Then open the current one, if childs   if(m.childs.length == 0){this.going = 0; return}   for(i=0;i<m.childs.length;i++){ //Show all    m.childs[i].o.showIt()    y = m.childs[i].o.y + m.childs[i].o.h   }   y+=this.l[m.lev].between   if(m.lev>0 && m.chnum!=this.menus[m.parent].childs.length-1){    yy=y; y = this.menus[m.parent].endy + this.l[m.lev].between   }   m.o.moveIt(m.o.x+this.inset,m.o.y)  //Inset current item:   if(this.useImages) m.o.bgImg(this.l[m.lev].roundImg)  //Change bg   this.active[m.lev] = num //Set active   if(this.arrow) m.ar.replaceChild(document.createTextNode("6"),m.ar.childNodes[0])   if(m.nexttop>-1 || m.nextel>-1) this.moveDown(m.nexttop,m.nextel,y,yy) //Then start moving all other elements down   else this.going=0  } } / Move items down / createSlideMenu.prototype.moveDown = function(top,num,y,yyy){  var m = this.menus[top],yy  if(m && m.o.y<y){   if((m.o.y+this.pxspeed)>y) yy = y-m.o.y   else yy=this.pxspeed   this.moveItems(yy,top)   setTimeout(this.name+".moveDown("+top+","+num+","+y+","+yyy+")",this.timspeed)  }else if(num>-1){   this.moveDown(num,-1,yyy,0)  }else this.going=0 } / Slide menu object / function createSlideMenu(name){  document.write('<div id="'+name+'cont">') //The cont div start  this.name = name  this.menus = new Array()  this.curr = 0  this.lasttype = new Array()  this.writesubsonly = 0  this.level = new Array()  this.l = new Array()  this.topmenus = new Array()  this.active = new Array()  return this } / Function to create the objects and the divs ********************************************************************************/ createSlideMenu.prototype.makeMenu = function(type,text,lnk,target,end){  var str="",tg="",parent,m,cl  m = this.menus[this.curr] = new Object()  this.lasttype[type] = this.curr; if(!lnk) lnk="#"  m.lev = 0; m.type = type; m.childs = new Array()  m.num = this.curr; m.parent = -1; m.nextel = -1  m.nexttop = -1; parent = 0  //DEBUGGING::::::  m.text = text

if(type.indexOf("sub")>-1){  //Find parent type   if(type.length == 3){ //sub    parent = "top"; m.lev = 1   }else{    parent = type.substr(3,1) //sub2+    m.lev = parent; parent--    if(parent==1){     parent = "sub"; m.lev = 2    }else parent = "sub"+parent   }  }   if(m.lev>=this.l.length){//Level control (same as CM4)     var p1,p2=0;   if(m.lev>=this.level.length) p1=this.l[this.level.length-1];     else p1=this.level[m.lev];   this.l[m.lev]=new Array();   if(!p2) p2=this.l[m.lev-1]     if(m.lev!=0 && p1){       for(i in p1){ //Copying an entire object     if(p1[i]==null) this.l[m.lev][i]=p2[i];     else this.l[m.lev][i]=p1[i]    }     }else{    this.l[m.lev]=this.level[0];   }     this.level[m.lev]=p1=p2=null   }  this.active[m.lev] = -1  if(parent){ //Find parent element   m.parent = this.lasttype[parent]   parent = this.menus[this.lasttype[parent]]   parent.childs[parent.childs.length] = m   if(this.arrow && parent.childs.length==1){str='<span class="'+this.arrow+'">4</span>'    if(document.getElementById && document.getElementById(parent.id).childNodes){     parent.ar = document.getElementById(parent.id).childNodes[this.useImage?1:0].childNodes[0]     parent.ar.innerHTML = str+parent.ar.innerHTML; parent.ar=parent.ar.childNodes[0]} else this.arrow=""   }  }else this.topmenus[this.topmenus.length] = this.curr  if(!this.writesubsonly || type!="top"){   cl = this.l[m.lev].className   m.id = id = this.name + "_" + this.curr   str= '<div id="'+id+'" class="'+cl+'">' //main div start   if(this.useImages){    str+='<div class="'+this.bgClass+'">'//bgdiv    str+='<img id="'+id+'_img" src="'+this.l[m.lev].regImage+'" />'    str+='</div>' //bgdiv   }   if(target) tg =' target="'+target+'" '   str+='<div class="'+this.txtClass+'"><a href="'+lnk+'" '+tg+' onclick="'+this.name+'.switchMenu('+this.curr+'); if(document.getElementById) this.blur(); '     if(lnk=="#") str+='return false'     str+='" class="'+this.l[m.lev].classNameA+'"> '+text+'</a><br /></div>\n'   str+="</div>\n\n" //main div end   document.write(str)  }  this.curr++ }

/******************************************************************************** Level object / function slideMenu_makeLevel(){   var c=this, a=arguments;  c.left=a[0]||0; c.width=a[1]||null; c.height=a[2]||null;  c.between=a[3]||null; c.className=a[4]||null; c.classNameA=a[5]||null;  c.regImage=a[6]||null; c.roundImg=a[7]||null; c.roundImg2=a[8]||null;  c.subImg=a[9]||null; c.subRound=a[10]||null; return c } / Preloading images ********************************************************************************/ function preLoadBackgrounds(){   for(i=0;i<arguments.length;i++){     this[i]=new Image()     this[i].src=arguments[i]   }   return this }