Autor Zpráva
Lukáš Chmela
Profil *
Dobrý den.
Omlouvám se, že se opět objevuji tady na fóru, ale s JavaScriptem prostě ještě nejsem moc kamarád. Přeci jen, funkce se zpracovávají jinak než v PHP, a to je asi kámen úrazu. Potřeboval jsem si udělat script, co by pozvolna skrýval a odkrýval objekty - DIVy. Zatím tahle funkce "funguje" - resp. měla by fungovat - pouze v IE.. později přidám podporu i pro Mozilu, atd... Abyste dostali představu, jak to vypadá, v HTML kódu jsou po sobě zapsané 3 divy za sebou, z nichž všechny 3 jsou uzavřeny v nadřazeném divu.
Vždy je vidět pouze jeden div, při načtení stránky tedy DIV1 - #smile1. při zavolání fadeNext by se měly načíst proměnné oDivZ, oDivF a oDivS. Podle nich se zavolá funkce fadeIn s požadovanými parametry, pro pozvolné skrytí zobrazenéo divu, skrytí pomocí CSS vlastnosti display s hodnotou none a pro zavolání fadeIn pro pozvolné zobrazení následujícího divu. Už podle chyby v ifu, že prý nejsou definovány styly prvku smile1 mi dochází že nejspíš se musí funkcím jako vstupní parametr přihodit také styl požadovaného prvku. Jenže když jsem to zkoušel, skončilo to neúspěchem. Tak Vás prosím o radu. Tady je Fade.js:

var oDivZ = "0";
var oDivF = "1";
var oDivS = "2";

function fadeBack(oDivZ,oDivF,oDivS) {
if (oDivZ=="0") return false;
fadeOut("smil" + oDivF,"smil" + oDivZ,"smil" + oDivZ,"block");
var oDivZ = (oDivZ-1);
var oDivF = (oDivF-1);
var oDivS = (oDivS-1);
}

function fadeNext(oDivZ,oDivF,oDivS) {
if (oDivS=="3") return false;
fadeOut("smil" + oDivF,"smil" + oDivS,"smil" + oDivF,"none");
var oDivZ = (oDivZ-1);
var oDivF = (oDivF-1);
var oDivS = (oDivS-1);
}

function fadeOut(oDiv1,oDiv2,oDivx,oDivact) {
oDiv2.style.visibility="hidden";
oDiv1.style.filter="blendTrans(duration=2)";
if (oDiv1.filters.blendTrans.status != 2) {
oDiv1.filters.blendTrans.apply();
oDiv1.style.visibility="hidden";
oDiv1.filters.blendTrans.play();
var hide=setTimeout(oDivx.id + ".style.display='" + oDivact.id + "';fadeIn(" + oDiv2.id + ")",2000);
}
}
function fadeIn(oDiv) {
oDiv.style.filter="blendTrans(duration=2)";
if (oDiv.filters.blendTrans.status != 2) {
oDiv.filters.blendTrans.apply();
oDiv.style.visibility="visible";
oDiv.filters.blendTrans.play();
}
}
peta
Profil
Lukáš Chmela
zbytek scriptu? Nejlepe odkaz na nefunkcni stranku?
Jde totiz o to, ze s prilozeneho kousku nezjistim, co mas v "oDiv", coz je dost podstatne. Take z toho nezjistim, jestli to volas uz v hlavicce, kdy proste cast BODY jeste neni vytvorena a tudiz to nema ani fungovat a hlasit chyby, ze mu neco neexistuje.
http://www.volny.cz/peter.mlich/www.htm#msub9
menu opacity (4k+0+3k for IE)
Anonymní
Profil *
Oprava:
function fadeNext(oDivZ,oDivF,oDivS) {
if (oDivS=="3") return false;
fadeOut("smil" + oDivF,"smil" + oDivS,"smil" + oDivF,"none");
var oDivZ = (oDivZ+1);
var oDivF = (oDivF+1);
var oDivS = (oDivS+1);
}

fadeBack() zase odkrývá předchozí div ( opak fadeNext() )

peta: Zbytek scriptu není. Tohle je celé. Funkci volám až při události onmouseover - po přejetí přes jiný div. Adresa je http://82.114.202.3/AdminsCreation/CallofDuty/ odkaz Návštěvní kniha - smajlíci ( přesný odkaz si nepamauji ). Server jede zhruba od 3 hodin odpoledne do 8 večer, takže pokud nepojede, zkuste to později.
peta
Profil
Anonymní
"Zbytek scriptu není. Tohle je celé."
To asi tezko, toto je jen funkcni cast, ktera meni necemo, co je v oDiv nejake vlastnosti. Toto si nemuzu doma spustit a otestovat, to bych si musel dopsat dalsich aspon 40 radku kodu.
Dej kod (na nejaky free hosting, treba wz.cz) nebo si porad s mym prikladem. Opavdu cekat, az se nekdo uraci spustit nejaky server... Prosim, po ranu studenou sprchu :)
Lukáš Chmela
Profil *
Přesná adresa je: http://82.114.202.3/AdminsCreation/CallofDuty/index.php?page=guestbook
Omlouvám se za Anonymní příspěvek, to jsem byl já.
peta: řekl jsem scriptu, ne HTML máte se s prominutím vyjadřovat přesněji. Server neběžel protože jsem byl ve škole. Stačí? ;)
Anonymní
Profil *
Tak už jsem to nějak dal dohromady. Adresa je opět: http://82.114.202.3/AdminsCreation/CallofDuty/index.php?page=guestbook
Sice to funguje perfektně a nedělá žádné výjimky, problémem je, že pouze v IE. Když to spustím v Opeře 9.0, z ničeho nic se zobrazená řada smajlíků zprůhlední na cca 90% a nic dalšího se neděje. V Mozille hlásí konzola JavaScriptu, že chyba je hned ve vstupních parametrech: fadeNext(smil1,smil2,smil3); Ani jeden z objektů prý neexistuje. No a Netscape, když přeskočím to, že dá smajlíkům takové rozestupy, že překryjí spodní šipku dělá to samé co Mozilla. Neíte někdo prosím, jak to rozchodit i jinde než v IE?
Toto téma je uzamčeno. Odpověď nelze zaslat.