Autor Zpráva
crossbone
Profil *
čau, potřebuju pomoct, nefunguje mi tenhle script tak jak by měl, kolečko se prostě nezobrazí a obrázky se jako načítají 2x :-O
function preload()
{
	//images=document.getElementsByTagName('img');
	for(var i=0;i<document.images.length;i++)
	{	
	  document.images[i].style.visibility='hidden';
		document.images[i].style.background='url(loading_kolo.gif)';
		document.images[i].onLoad=back(i);
	}
}

function back(id)
{
	document.images[id].style.visibility='visible';
	document.images[id].style.background='none';
}

window.onload=preload;
Chamurappi
Profil
Reaguji na crossbone:
document.images[i].onLoad=back(i);
Na první pohled mě praštily do očí dvě drobnosti:
1) Událost je „onload“, s malým L.
2) Přiřazuješ k ní výsledek funkce back, nikoliv funkci samotnou. Viz nedávná debata o stavu načtení obrázku.
crossbone
Profil *
tak ten jeden řádek jsem změnil ale stále to nefunguje, pořádně nechápu ten rozdíl a ani nevím jestli to mám dobře...
document.images[i].onload=function (i) {back(i);};


ps: díky za rychlou odpověď, nečekal sem že tu vtuhle hodinu někdo bude :)
Chamurappi
Profil
Reaguji na crossbone:
Když ten jeden řádek přepíšu/zašmodrchám, aby fungoval dle potřeby, tak ho zřejmě pořádně nepochopíš. Uděláme to tedy jinak — přímočařeji:
function preload()
{
  //images=document.getElementsByTagName('img');
  for(var i=0;i<document.images.length;i++)
  {	
    document.images[i].style.visibility='hidden';
    document.images[i].style.background='url(loading_kolo.gif)';
    document.images[i].onload=function()
    {
      this.style.visibility='visible';
      this.style.background='none';
    };
  }
};

window.onload=preload;
crossbone
Profil *
tvůj kód jsem zkopíroval - ale stále nefunguje...
jde mi o to loadovací kolečko než se načte obrázek - to ti zřejmě došlo...

teď to dělá to, že to dá obrázku visibility: hidden; ale pokud se má provýst ta funkce tak se zřejmě neprovede?? obrázek stále není vidět... nevím co stim?

z této diskuse jsem toho moc nepobral
crossbone
Profil *
je to tak, ta funkce se neprovede, a to visibility se taky neprovede hned ale až po načtení všech obrázků, není to tím že tu funkci volám až na
window.onload ?
Chamurappi
Profil
Reaguji na crossbone:
Aha. Je :-)
Událost onload na celém okně se skutečně vyvolává až po načtení všech <img>. Dej tedy někam na konec HTML kódu:
<script>
preload();
</script>
crossbone
Profil *
tak jsem to udělal... teď to funguje ale né pořád dostatečně... chci říct, nezobrazuje se to kolečko, podívej se sám
crossbone
Profil *
toto sem dal nakonec kódu
<script type="text/javascript" src="js/void.js"></script>

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:

0