Javascript preloader fejl?

Tags:    javascript

<< < 12 > >>
Hej allesammen!

jeg har lavet mig en lille simpel preloader der ser sådan ud:
Fold kodeboks ind/udKode 


Det vriker dog ikke efter hensigten, det eneste der sker er at billedet bliver vist så snart det loader...
Har med vilje valgt et MEGET grafiktungt billede, så det kan ikke være det at man bare ikke når at se det... :(

Håber i kan hjælpe!



Det er fordi du smider den i body'en onload.. Dvs. at når siden er loaded helt, går den i gang - altså en onload funktion går først igang når siden er fuldt loadet, så den kan du desværre ikke bruge på den måde, til gændgæld kan du måske lave noget med at siden er sløret eller noget i forvejen, og så bliver den clear on load?
Sådan noget lavede jeg en gang ;)
Se evt. hvordan det virker her: http://www.rosmi.dk/wux/default.asp



Indlæg senest redigeret d. 20.02.2008 22:24 af Bruger #8773
Kan du ikke lige give en forklaring af:
propertien: '.complete' Og er det muligt at bruge den?
muligheden 'obj = new Image();

Ideen er at jeg loader billederne før siden vises. Hvordan?!



Det er netop det jeg lige sagde..

Du skal lave en div i bunden af din BODY, som er stor nok til at dække hele siden (går ud fra en side på 1000px x 800px), og så skal du have en main-holder, som er en div til at holde hele din side. Det hele skal se ca. sådan her ud:
Fold kodeboks ind/udKode 


spacer.gif er bare en gennemsigtigt 1x1px gif fil.

Så skal du have en javascript kode, som du placerer i din HEAD eller en ekstern fil, som bliver inkluderet i HEAD som ser sådan ud:
Fold kodeboks ind/udKode 


Her finder vi de 2 elementer: bloker og maintable.
bloker er det der ligesom går ind og blokerer for siden, så man ikke kan bruge menuer osv. når man kommer ind på siden, maintable er din main-holder, som indeholder alt indhold til siden.
Det javascript koden gør er, at fjerne noget fra din style, så den ikke længere er halv-gennemsigtig, og grunden til at der er 2 er, at det ene er til Firefox, den anden til IE.
derefter fjerner vi "bloker" så man kan trykke igen.

Sidst, men absolut ikke mindst, skal vi jo lige huske at fjerne vores "loading" screen når siden er færdig med at loade.
Til det har vi body onload="". Her kalder du javscript funktionen "loading();"

En samlet kode vil se ca. sådan ud:
Fold kodeboks ind/udKode 


Håber du forstår det bedre nu ;)



Har forstået det der... og det kan jeg også godt selv, jeg tror ikke du forstod:
Kan du ikke lige give en forklaring af:
propertien: '.complete' Og er det muligt at bruge den?
muligheden 'obj = new Image();




complete udskriver en boolean verdi ( enten 1 og 0 eller true og false ) alt efter om det er loaded eller ej ;)



Hmm. ja det virker bare ikke når jeg laver en preloader med det... den siger true ligemeget hvad....



Måske er din internetforbindelse så hurtig, at den ikke registrerer det?

Jeg kan lige prøve at lege lidt med det, og se hvad jeg finder ud af ;)



Jeg har leget lidt med det nu - og har fået det til at virke.

Ved ikke om du kan se dig ud af koden her:
Fold kodeboks ind/udKode 


Det der, kort fortalt, sker er, at den hele tiden (med et interval på 1/100 sekund) tjekker om billedet er færdig med at loade, og hvis det er det, udskriver den "færdig" hvis ikke udskriver den "loading" ;)

Håber du forstår det nogenlunde.



Hehe jo, jeg kan godt se det, og mange tak!



Har lige lavet det her:
Fold kodeboks ind/udKode 


Det virker sådan set også ok, bortset fra at punktummerne efter loader går helt amok... :|
Kan du hjælpe?



<< < 12 > >>
t