| Autor | Zpráva | ||
|---|---|---|---|
| mikul Profil * |
#1 · Zasláno: 11. 4. 2008, 08:00:44
Zdravím. Mám funkci v JS která se mi spustí po načtení celé stránky. Ta funkce zajišťuje, aby se mi dokola střídaly obrázky a protože je těch obrázků více tak trvá strašně dlouho než se načtou tedy i než se celá funkce spustí. Přitom by ale klidně mohla začít dřív, první obrázky už jsou načtené a mohly by se tak střídat. Na co mám navázat spuštení té funkce, aby začala téměř hned, nebo hned po načtení alespoň 2. obrázku, aby jej mohla vystřídat? Díky.
|
||
| peta Profil |
#2 · Zasláno: 11. 4. 2008, 08:24:47
mikul
Prepsat script na casovac. Vic tezko rici. Nic neni, nic rada. Zmensit obrazky? stranka se vsim ma mit do 40k. Maji vsechny tve obrazky / nahledy do 40k ? Jestli ne, to je zdroj problemu. Zbyva jen cekat. |
||
| mikul Profil * |
#3 · Zasláno: 11. 4. 2008, 08:40:26
Stránka je mnohem větší má okolo 4Mb - je to 90 obrázků. Nejsou tam náhledy, je to "simulace" prezentace v ppt nenapadlo mě nic lepšího jak ji umístit na web. Prostě z každěho snímku je obrázek a ty běží za sebou. Vím že ta velikost je ten problém, prostě se to spouští v <body onload... > ale onload i jiné události jsou nevhodné. Je možné aby se to spustilo dřív než to načte celé pole a nebo ho to prostě musí načíst a až pak to jede dál?
<script language="JavaScript"> <!-- pocet=89 rotator=0 obrsrc = new Array(pocet) obrsrc[0]="snimek-0.jpg"; obrsrc[1]="snimek-1.jpg"; . . ....až do 100 obr = new Array(pocet); for (i=0; i < pocet; i++){ obr[i]= new Image(); obr[i].src= obrsrc[i] } function rotate() { if (rotator==pocet) {rotator=0;} document.images["obraz"].src = obrsrc[rotator]; window.setTimeout('rotate();',obrdoba[rotator]); rotator = rotator + 1 } |
||
| DJ Miky Profil |
#4 · Zasláno: 11. 4. 2008, 09:43:17
A co třeba načíst prvních 10 obrázků, spustit prezentaci a mezitím spustit načítání těch dalších?
Ten počet by se musel otestovat a vyladit, ale bylo by to lepší řešení… |
||
| mikul Profil * |
#5 · Zasláno: 11. 4. 2008, 10:14:23
Ano v podstatě takhle bych to chtěl. Jen nevím jak to spustit po načtení řekněme těch 10 obrázků. Mají docela dlouhý interval na promítnutí, takže se načítají rychleji než promítají a určitě by nedošlo k tomu, že by nebyl načten obrázek který se má právě promítnout.
|
||
| mikul Profil * |
#6 · Zasláno: 11. 4. 2008, 15:14:13
Čím by se prosím dala spustit ta funkce např. po načtení třetího obrázku? Aby se spustila a dál pokračovalo načítání dalších obrázků.
|
||
| Bubák Profil |
#7 · Zasláno: 11. 4. 2008, 15:36:52
Koukni pro inspiraci na http://teststranek.kvalitne.cz/obrazek-zobrazit-nacteny.html
Záleží jen na době, na který obrázek pověsíš událost onload a jakou funkci spustí. Zdánlivě nepochopitelný 10ms timeout tam je kvůli prohlížeči Opera, která jinak nechtěla zobrazit obrázek, pokud už byl nakešovaný, stačilo by zadat nulu, ale jistota je jistota. |
||
| mikul Profil * |
#8 · Zasláno: 11. 4. 2008, 19:59:59
No jo jenže já to nemůžu navázat na žádný obrázek protože je mám jako prvky pole a tam nemám tag img. A onload jde jen na img a body. Jediný img který tam mám je ten jak se v něm ty obrázky střídají, a když to dám do něj tak to nezvladne prohlížeč, protože se ta funkce zřejmě pustí při každé výměně obrázku => při druhém obrázku běží 2x a celé se to zesype.
|
||
| Bubák Profil |
#9 · Zasláno: 11. 4. 2008, 21:21:09
je mám jako prvky pole a tam nemám tag img.
Vždyť ti nic nebrání dát tam tag <img>, aby tam "nestrašil", skryješ ho stylem, můžeš ho třeba vypozicovat 5000px doleva. display:none; nejde použít kvůki prohlížeči Opera, ta obrázky s display:none; nenačítá. Podobný výsledek, jako display:none; má kombinace absolutní pozice a visibility: hidden;, ale Opera obrázek nakešuje. |
||
| mikul Profil * |
#10 · Zasláno: 11. 4. 2008, 22:30:47
Zkoušel jsem dát tam prostě další obrázek přímo do té stránky, a z-index em jsem ho schvoval aby nebyl vidět a na něj jsem navázal onload, ale asi protože ten JS mám v head tak to prostě spustilo až po načtení všech obrázků -mohlo to být tím???. Nejlepší by bylo něco jako "po 5 vteřínách po vejítí na stránku spusť funkci rotate" Jde něco takového udělat?
|
||
|
Časová prodleva: 18 let
|
|||
0