21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
peta
Profil *
Jak zjistim, ze se mi nacetl obrazek?
Napadlo mne toto, ale nejak to nefunguje:

obr0=new Image();
if (Boolean(obr0.src="sokoban.gif")) objc("plocha","znaky")

-vytvorim fiktivni obrazek
- pak mu zkusim priradit src a jestli to projde, pak zmenim class u prvku "plocha" tak, aby (nezobrazoval nic v tagu B, kde mam znaky misto obr) ... coz neuvadim, objc() funguje ok, jen se to musi dat do onload, kdyz to mam v headu
Leo
Profil
function nacteno() {
...
}

var obr = new Image();
obr.onload = nacteno;
obr.src = ...

Leo
peta
Profil *
Dik, vyzkousim. Jestli funguje tak dik.
Leo
Profil
Onload musi byt jeste pres prirazenim src a melo by to behat, Leo
peta
Profil *
Pockej, ale to nefunguje.
Co kdy ten obrazek nemam?

obr0=new Image();
obr0.src="sokoban.gif"
obr0.onload=objc("plocha","znaky")

sokoban.gif prejmenuji na x.gif a presto se mi provede uspesne onload
To je totez, jako bych tam nic nedal, protoze ten obr mam jinak v CSS
peta
Profil *
Leo Tak opacne to take nefunguje
obr0=new Image();
obr0.onload=objc("plocha","znaky")
obr0.src="sokoban.gif"
peta
Profil *
Mozna jsem neco jenom spravne nepochopil, ale...
- chci, aby kdyz nebyl obrazek k dispozici, tak se nic neprovedlo
- a pokud k dispozici je, aby se provedla funkce obji()
Leo
Profil
Nemuzete napsat

obr.onload = objc(...)

vpravo neni volani fce, ale jen jeji nazev... Leo
peta
Profil *
Hm... Cili neco, jak se pisi keyeventy, tam se take dava onmousemove=neco; a funkce pak muze byt definovana jako neco(souradnice) a pak se musi rozhodovat, zda souradnice vznikly, ci ne... viz rozdily browseru...

Aha. Zkusim.

Bezva, dik moc, pisi cast reseni...
<style>
td {background-image:url("sokoban.gif")}
.znaky b {visibility:hidden}
</style>
function objc(x,z) {objGet(x).className=z}

function nacteno() {objc("plocha","znaky")}
function init()
{
obr0=new Image();
obr0.onload=nacteno;
obr0.src="sokoban.gif"
}

<table id="plocha">
<tr><td><b>x</b></td></tr>
</table>

Kdyz nacitani obrazku selze, "plocha" nedostane className znaky a zobrazi se "x" a tucne.
Jinak se zobrazi na pozadin TD obrazek sokoban.gif
Leo
Profil
No a nebyla by v tomhle konkretnim pripade pouzitelna nejaka ciste CSS metoda nahrady textu obrazkem (background obrazek umistit NAD text a pokud se nenacte, bude text videt automaticky), Leo
peta
Profil *
Mno, slo by to, samozrejme.
- prvku nad das position:relative;z-index:10;
- obr-prvku das position:absolute:z-index:5;
- Ale pak jeste musis zabezpecit rozmery obrazkoveho prvku, zabezpecit, aby ti to pri zmenseni pisma nepreteklo, ...
- Jinak, v jinem pripade, jak bych zabezpecil, aby mi na obou vrstvach fungovalo onclick=... ? Bych to musel napsat pro obe. Nebo by se to mozna nejak dalo
- Co se pak ale stane, kdyz se nekde vypnou css ? Zobrazi se mi oba prvky a to je nezadouci. Nemluve o tom, ze pak musim menit u dvou prvku naraz vlastnosti, coz by mohlo zpusobovat poblikavani...

Mi osobne ted vyhovuje tohle reseni.
Je spravne, ne?
Nebo to je zas to reseni, kde se ozyvaji DOM machri a rikaji, ze to neni uplne super.

nevim, zkratka ja se radeji pozicovani a z-indexovani vyhnu. Z toho kouka vic problemu, nez se zda.
Leo
Profil
"Co se pak ale stane, kdyz se nekde vypnou css ?"

A co se stane, kdyz vypnou JavaScript? Leo
Toto téma je uzamčeno. Odpověď nelze zaslat.

0