Autor Zpráva
stanley
Profil *
http://www.volny.cz/peter.mlich/www.htm#mssub8

na tejto adrese som od Vás dostal tip na vysúvacie menu s efektami... stiahol som si stránku a snažím sa rozlúsknuť js kód, no nedarí sa mi to...:(

Tu je celý js kód, neviem ako ho upraviť aby sa použil efekt opacity2....: ďakujem...
function objGet(x)

{var d=document;x=d.getElementById?d.getElementById(x):d.all?d.all[x]:d[x]? d[x]:d.layers?d.layers[x]:null;return x;}

function objd(x,z) {objGet(x).style.display=z?"block":"none";}
function objv(x,z) {objGet(x).style.visibility=z?"visible":"hidden";}

var funkce=0;
var numMenu=3;
var idecka=new Array(numMenu); //[step],[show/hide],[width],[height]
var steps=11;
var effectline=[0,0];
var line2=[
[0,10,20,30,40,50,60,70,80,90,100], //linear n*10
[0, 2,10,21,35,50,65,79,90,98,100], //cosinus 0.5-cos(18*n)/2
[0, 2, 6,12,20,30,42,56,72,90,100], //parabolic n/2(n+1)*2
[0,29,46,59,68,76,82,88,93,97,100], //logaritm ln(n+1)*1.15
[0, 3, 7,12,18,24,32,41,54,71,100] //logaritm reverse
];
var timerID=new Array(numMenu);
var timerSpeed=80;

function nextStep(e,i,n)
{var j;
j=idecka[i][0];
j+=n;
j=j<steps?(j<0?0:j):steps-1;
idecka[i][0]=j;
idecka[i][1]=(j>0 && j<steps)?1:0;
return line2[effectline[e]][j];
}

function hodinyStop(i) {clearTimeout(timerID[i])}
function hodinyStart(t,i){if (idecka[i][1]) {t=(t?"ukaz":"skryj")+"("+i+")";timerID[i]=setTimeout(t,timerSpeed)}}

function ukaz(i) {
hodinyStop(i);
var j,k,q;
q="sub"+i;
if (funkce>1) {j=nextStep(1,i,1);}
switch (funkce)
{
case 0: objd(q,1);
break;
case 1: changeOpac(q,100);
objd(q,1);
idecka[i][1]=0;
idecka[i][0]=steps-1;
break;
case 2: changeOpac(q,j);
break;
case 3: changelineHeight(q,j);
break;
case 4: changebottom(q,i,j);
break;
case 5: changefontSize(q,j);
changelineHeight(q,j);
break;
case 6: changeclip1(q,i,j);
objflow(q,"hidden");
break;
case 7: changeclip2(q,i,j);
objflow(q,"hidden");
break;
case 8: changeclip3(q,i,j);
objflow(q,"hidden");
break;
}
if (funkce>1) {objd(q,(j>0?1:0));hodinyStart(1,i);}
}

function skryj(i){
hodinyStop(i);
var j,k,q;
q="sub"+i;
if (funkce>0) {j=nextStep(1,i,-1);}
switch (funkce)
{
case 0: objd(q,0);
break;
case 1: changeOpac(q,j);
break;
case 2: changeOpac(q,j);
break;
case 3: changelineHeight(q,j);
break;
case 4: changebottom(q,i,j);
break;
case 5: changefontSize(q,j);
changelineHeight(q,j);
break;
case 6: changeclip1(q,i,j);
objflow(q,"hidden");
break;
case 7: changeclip2(q,i,j);
objflow(q,"hidden");
break;
case 8: changeclip3(q,i,j);
objflow(q,"hidden");
break;
}
if (funkce>0) {objd(q,(j>0?1:0));hodinyStart(0,i);}
}


function objBottom(x,z) {objGet(x).style.bottom=z;}
function objHeight(x,z) {objGet(x).style.height=z;}
function objlineHeight(x,z){objGet(x).style.lineHeight=z;}
function objfontSize(x,z){objGet(x).style.fontSize=z;}
function objclip(x,z) {objGet(x).style.clip=z;}
function objflow(x,z) {objGet(x).style.overflow=z;}

function changeOpac(id,opacity)
{var s,o;
s=objGet(id).style;
o=opacity;
o=0.01*(o==100?99.9:o); //FF bug 99.9
s.opacity = o;
s.MozOpacity = o;
s.KHTMLOpacity = o;
s.filter = "alpha(opacity=" +opacity+ ")";
}

function changeHeight(id,i,height)
{objHeight(id,parseInt(height/100*idecka[i][3])+"px");}

function changelineHeight(id,height)
{objlineHeight(id,height/100*1.25+"em");}

function changefontSize(id,height)
{objfontSize(id,height+"%");}

function changebottom(id,i,height)
{var x,y;
y=idecka[i][3];
x=height/100*y;
objBottom(id,parseInt(4-x*1.1)+"px");
objclip(id,'rect('+parseInt((y-x)*1.1)+'px auto auto 0px)');
objflow(id,"hidden");
}

function changeclip1(id,i,height)
{objclip(id,'rect(0px auto '+parseInt(height/100*idecka[i][3]*1.1)+'px 0px)');};

function changeclip2(id,i,size)
{objclip(id,'rect(0px '+parseInt(size/100*idecka[i][2]*1.1)+'px auto 0px)');};

function changeclip3(id,i,size)
{objclip(id,'rect(0px '+parseInt(size/100*idecka[i][2]*1.1)+'px '+parseInt(size/100*idecka[i][3]*1.1)+'px 0px)');};

function reseteffect()
{var i,q,o;
for(i=0;i<numMenu;i++)
{
q="sub"+i;
changeOpac(q,100);
objHeight(q,"auto");
changefontSize(q,100);
changelineHeight(q,100);
objBottom(q,"auto");
objclip(q,"rect(auto auto auto auto)");
objflow(q,"visible");
}
}

function init()
{var i,o,q;
for(i=0;i<numMenu;i++)
{
q="sub"+i;
o=objGet(q);idecka[i]=[0,0,o.offsetWidth,o.offsetHeight];
objd(q,0);objv(q,1);
timerID[i]=null;
}
}


temistokles
Profil
<ot>
Vivat, ten kód mi niečo pripomína :D Nič v zlom, nič osobné ;)
</ot>
peta
Profil
temistokles
"Mlichovo efektné menu"
No jasne, kdyz pouziva me menu.

stanley
Navic to neni efektne ani defektne, ale menu s efekty. Protoze to nijak zvlast vzhledove nevypada.
var funkce=0;
ze by stacilo 0 zmeni na jine cislo, aby se na zacatku pouzilo jine cislo?
V tom pripade bys mohl ostatni cisla s case smazat, kdyz je nepouzijes. A nebo tam nech vsechno i select a budes mit aspon takovou legracku na strance.

Mimochodem, nebylo by lepsi dat odkaz na primy JS kod + html kod nez zaplacavat forum kodem?
stanley
Profil *
peta
ospravedlnujem sa za ten kód...
luka
Profil *
peta
Mimochodem, asi by bolo keby ta stranka nebola tvoja a nezbieral by si spatne odkazy. Tebe nik nevyhovie.


stanley
ty sa nemas zac ospravdlnovat ale ten nad tebou ano

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: