N
Netzwerkidi
Hallo in die Runde,
als ewig Suchender, Findender und Lernender bin auf eine elegante Menülösung bei
http://sandbox.scriptiny.com/dropdown-menu/
gestoßen. Da ich immer wissen will, wie was funktioniert, habe ich mir den Javascriptcode mal näher angesehen.
Und ich verstehe einfach nicht, was der Meister mit dem folgenden Statement bewirkt, also was da zurückgeben wird.
alert({dd:dd}) zeigt mir an [object Object]. Ja klasse!
alert(dd) zeigt den Funktionscode.
Warum macht er das und was soll das bewirken?
Vielleicht kann mir jemand auf die Sprünge helfen.
Dank im voraus!
Grüße
Idi
PS: Nachfolgend der gesamte JS-Code.
Aufruf:
und Funktion selbst
Wie gesagt bei: http://sandbox.scriptiny.com/dropdown-menu/
als ewig Suchender, Findender und Lernender bin auf eine elegante Menülösung bei
http://sandbox.scriptiny.com/dropdown-menu/
gestoßen. Da ich immer wissen will, wie was funktioniert, habe ich mir den Javascriptcode mal näher angesehen.
Und ich verstehe einfach nicht, was der Meister mit dem folgenden Statement bewirkt, also was da zurückgeben wird.
Code:
return{dd:dd}
alert({dd:dd}) zeigt mir an [object Object]. Ja klasse!
alert(dd) zeigt den Funktionscode.
Warum macht er das und was soll das bewirken?
Vielleicht kann mir jemand auf die Sprünge helfen.
Dank im voraus!
Grüße
Idi
PS: Nachfolgend der gesamte JS-Code.
Aufruf:
Code:
var menu=new menu.dd("menu");
menu.init("menu","menuhover");
und Funktion selbst
Code:
var menu=function(){
var t=15,z=50,s=6,a;
function dd(n){this.n=n; this.h=[]; this.c=[];}
dd.prototype.init=function(p,c){
a=c; var w=document.getElementById(p), s=w.getElementsByTagName('ul'), l=s.length, i=0;
for(i;i<l;i++){
var h=s[i].parentNode; this.h[i]=h; this.c[i]=s[i];
h.onmouseover=new Function(this.n+'.st('+i+',true)');
h.onmouseout=new Function(this.n+'.st('+i+')');
}
}
dd.prototype.st=function(x,f){
var c=this.c[x], h=this.h[x], p=h.getElementsByTagName('a')[0];
clearInterval(c.t); c.style.overflow='hidden';
if(f){
p.className+=' '+a;
if(!c.mh){c.style.display='block'; c.style.height=''; c.mh=c.offsetHeight; c.style.height=0}
if(c.mh==c.offsetHeight){c.style.overflow='visible'}
else{c.style.zIndex=z; z++; c.t=setInterval(function(){sl(c,1)},t)}
}else{p.className=p.className.replace(a,''); c.t=setInterval(function(){sl(c,-1)},t)}
}
function sl(c,f){
var h=c.offsetHeight;
if((h<=0&&f!=1)||(h>=c.mh&&f==1)){
if(f==1){c.style.filter=''; c.style.opacity=1; c.style.overflow='visible'}
clearInterval(c.t); return
}
var d=(f==1)?Math.ceil((c.mh-h)/s):Math.ceil(h/s), o=h/c.mh;
c.style.opacity=o; c.style.filter='alpha(opacity='+(o*100)+')';
c.style.height=h+(d*f)+'px'
}
return{dd:dd}
}();
Wie gesagt bei: http://sandbox.scriptiny.com/dropdown-menu/