Autor | Zpráva | ||
---|---|---|---|
pospyrus Profil * |
#1 · Zasláno: 7. 10. 2010, 22:18:38
Dobrý den,
mám problém: nevim proč, ale tento script někdy funkuje a někdy ne. Je to ve fotogalerii a normálně to jede, ale občas nebo spíš často tam zůstane načítací obrázek a fotka se neobjeví, zkusím to znovu, třeba přes F5 a jede to. Nevíte někdo proč?: <center><img src="/img/nacitani.gif" id="obr" onload="window.setTimeout('nacitani()', 1);"></center> <script> function nacitani() { promenna = new Image(); promenna.src = "<?php echo($marray['url']); ?>"; promenna.onload = function () { var ide="obr"; document.getElementById(ide).src=promenna.src; var sirka = screen.width - 124; if (promenna.width > sirka) { document.getElementById(ide).width=sirka; }; var pscroll = <?php if (isset($_GET['scroll'])) {echo $_GET['scroll'];} else {echo(0);} ?>; if (pscroll != 0) {window.scrollTo(0, pscroll);} }} </script> <br> <button style="position: fixed; top: 10; left: 50;" onclick="window.location.href='show.php?id=<?php echo($predchozi); ?>&scroll=' + document.body.scrollTop;">Předchozí</button> <button style="position: fixed; top: 10; right: 50;" onclick="window.location.href='show.php?id=<?php echo($dalsi); ?>&scroll=' + document.body.scrollTop;">Další</button> <script> var s = 123; function sipky(a) { if(s==123) { if (a==37) {window.location.href='show.php?id=<?php echo($predchozi); ?>&scroll=' + document.body.scrollTop;} if (a==39) {window.location.href='show.php?id=<?php echo($dalsi); ?>&scroll=' + document.body.scrollTop;} if (a==27) {window.close();return false;} //esc }} </script> |
||
_es Profil |
#2 · Zasláno: 7. 10. 2010, 23:08:48 · Upravil/a: _es
pospyrus:
„normálně to jede, ale …“ A čo to má akože "normálne" robiť, ak to má pracovať tak, ako si predstavuješ? Ak som tú funkčnosť správne pochopil tak by malo pomôcť: - Celý blok kódu <script> premiestniť pred ten obrázok.
- V tom kóde premiestniť 6. riadok ( promenna.src = …) až na koniec skriptu.
- Atribút onload toho obrázka zmeniť na: onload="nacitani();" .
|
||
pospyrus Profil * |
#3 · Zasláno: 8. 10. 2010, 15:36:38
tam se má načíst malej obrázek, kterej se točí pořád dokola, mělo by to znázorňovat načítání a poté se načíst novej obrázek (ta fotka) a po načtení změnit načítací obrázek na tu fotku...
Jenže v 1 ze 3 případů tam zůstane načítací obrázek a fotka se neukáže. Dám F5 a fotka se normálně načte... |
||
_es Profil |
#4 · Zasláno: 8. 10. 2010, 16:51:50
pospyrus:
No a tie tri kroky na odstránenie problému pomohli? |
||
pospyrus Profil * |
#5 · Zasláno: 8. 10. 2010, 17:28:36
teď to už nejde vubec
_es: „- Celý blok kódu <script> premiestniť pred ten obrázok.“ A když to dám před obrázek, tak tam to načítání už nemusim dávat vubec, protože ta fotka se načte ještě dřív než se zobrazí to načítání „- V tom kóde premiestniť 6. riadok (promenna.src =…) až na koniec skriptu.“ Když udělám toto, tak se vůbec nespusti funkce promenna.onload tam se jednáo to, že to normálně funkuje, jenže tam v 1 ze 3 případů zůstane načítací obrázek a já nevim proč... |
||
_es Profil |
#6 · Zasláno: 8. 10. 2010, 18:08:53 · Upravil/a: _es
pospyrus:
Nešpekuluj a skús aplikovať tie rady, je vidno, že tomu kódu veľmi nerozumieš. Myslel som aplikovať všetky kroky súčasne. Pre istotu daj ešte atribút onload pred atribút src toho obrázka.
A ešte uprav 5. riadok na: var promenna = new Image();
6. riadok na koniec skriptu som myslel na koniec tej funkcie nacitani .
Keď to stále "nejde", tak daj odkaz na stránku s tým skriptom. „tam se jednáo to, že to normálně funkuje, jenže tam v 1 ze 3 případů zůstane načítací obrázek a já nevim proč…“ Ja to viem, môže to nastávať v dôsledku viacerých vecí, ktoré tam máš zle či nevhodne. Radšej to tu dám celé: <script> function nacitani(o) { var promenna = new Image(); promenna.onload = function () { o.src=promenna.src; var sirka = screen.width - 124; if (promenna.width > sirka) { o.width=sirka; }; var pscroll = <?php if (isset($_GET['scroll'])) {echo $_GET['scroll'];} else {echo(0);} ?>; if (pscroll != 0) {window.scrollTo(0, pscroll);} }; promenna.src = "<?php echo($marray['url']); ?>"; } </script> <center><img onload="nacitani(this);" src="/img/nacitani.gif" id="obr"></center> |
||
pospyrus Profil * |
#7 · Zasláno: 8. 10. 2010, 20:05:59
jj, diky moc, již to bezvadně funkuje. rozměry tam mám proto, že pokud je fotka větší než monitor, tak se zmenší. Jo a poradítemi nějakej dobrej program na zmenšování kvality fotek? Protože se to načítá strašně pomalu. Děkuji
|
||
Časová prodleva: 9 měsíců
|
|||
roumen Profil * |
#8 · Zasláno: 6. 7. 2011, 11:39:48
IrfanView
|
||
Časová prodleva: 14 let
|
0