<SCRIPT language="JavaScript"><!--
menulayer=new Array()
menulayer[0]="menu1"
menulayer[1]="menu2"
menulayer[2]="menu3"
menulayer[3]="menu4"
v4=(parseInt(navigator.appVersion)>=4 && parseInt(navigator.appVersion)<=5)?1:0
ie=(document.all && v4)?1:0
ns=(document.layers && v4)?1:0
function showmenu(thelayer){
keep=thelayer; hideall(); showitnow=1
showit(thelayer)
}
function showit(thelayer){
if(ie){ eval(menulayer[thelayer]+'.style.visibility="visible"') }
if(ns){ eval('document.'+menulayer[thelayer]+'.visibility="show"');}
}
function hidemenu(){
keep=-1; setTimeout('hideall()',500)
}
keep=-1
function hideall(){
for(i=0;i<menulayer.length;i++){
hideit=0; checkmousepos(i)
if(ie && keep!=i){
if(hideit){ eval(menulayer[i]+'.style.visibility="hidden"') }
}
if(ns && keep!=i){
if(hideit){ eval('document.'+menulayer[i]+'.visibility="hide"') }
}
}
}
document.onmousemove = getmousepos
if (ns) document.captureEvents(Event.MOUSEMOVE)
function getmousepos(e){
if(ns){mousex=e.pageX; mousey=e.pageY}
if(ie){mousex=event.clientX; mousey=event.clientY;}
}
function checkmousepos(i){
if(ns){
x_min=eval('document.'+menulayer[i]+'.left')
x_max=x_min+eval('document.'+menulayer[i]+'.clip.width')
y_min=eval('document.'+menulayer[i]+'.top')
y_max=y_min+eval('document.'+menulayer[i]+'.clip.height')
}
if(ie){
x_min=eval(menulayer[i]+'.style.pixelLeft')
x_max=x_min+eval(menulayer[i]+'.scrollWidth')
y_min=eval(menulayer[i]+'.style.pixelTop')
y_max=y_min+eval(menulayer[i]+'.scrollHeight')
}
if (mousex>=x_min && mousex<=x_max && mousey>=y_min && mousey<=y_max){
hideit=0; setTimeout('hideall()',500)
}
else { hideit=1 }
return hideit
}
//--></SCRIPT>
Habe mit Hilfe dieses Scripts eine Art Dropdownmenü gebastelt, aber wenn man den Mauszeiger innerhalb des Menulayers hin und her bewegt, ist der Browser mit der Zeit überfordert und kackt irgendwann ganz ab. Kann man das irgendwie optimieren?
Danke und Gruß
bueli