Autor | Zpráva | ||
---|---|---|---|
SeparateSK Profil |
#1 · Zasláno: 14. 1. 2012, 18:04:44
Dobrý deň, mám tento script:
<img src="favicon.png" name="incIMG"> <img src="face.png" name="incIMG"> <div name="incIMG">ahoj</div> <script type="text/javascript"> var incIMGp=document.getElementsByName('incIMG').length; var incIMGobj=""; var incIMGw,incIMGh=0; for(y=0;y<=incIMGp;y++){ incIMGobj=document.getElementsByName('incIMG')[y]; incIMGw=incIMGobj.offsetWidth; incIMGh=incIMGobj.offsetHeight; // DEBUG: alert(incIMGobj); alert("Šírka "+incIMGobj+" je : "+incIMGw+"px"); //vypisuje ,ze sirka obrazkov je 0px, ale to je nejak bugnute if(incIMGw>=920) { incIMGobj.offsetWidth=920; } } </script> Ako je v komentári napísané: Vypisuje, že šírka obrázkov je 0px. A toto je ten problém. Potrebujem vedieť, ako sa dá javascriptom zistiť šírka a výška obrázku. |
||
Davex Profil |
Rozměry obrázku jsou překvapivě ve vlastnostech
width a height , ale pokud se při běhu skriptu ještě nestihnou načíst, tak tam může být také nula.
|
||
SeparateSK Profil |
#3 · Zasláno: 15. 1. 2012, 20:49:59
Ďakujem, toto pomohlo pridal som window.onload=function(){ ...môj script... }
a všetko je ok |
||
_es Profil |
#4 · Zasláno: 16. 1. 2012, 09:04:04
SeparateSK:
Aj obrázok má udalosť onload .
|
||
Radek9 Profil |
SeparateSK:
Já bych to udělal nějak takhle (pokud potřebuješ všechny obrázky najednou): var imgs = document.getElementsByName("incIMG"), count = 0, onloadFunc = function(){ if(++count===imgs.length){ for(var i=0;i<imgs.length;++i){ alert(imgs[i].width+" × "+imgs[i].height); } } }; for(var i=0;i<imgs.length;++i){ imgs[i].onload = onloadFunc; } |
||
Chamurappi Profil |
#6 · Zasláno: 16. 1. 2012, 13:52:21
Reaguji na Radka9:
Pokud bude obrázek v keši, nebo se z jiného důvodu načte dřív, než se zpracuje skript, onload nechytíš.
Také se může někdy někde stát, že onload vyskočí víckrát. Nevím přesně kdy a proč, ale mám experimentálně ověřeno, že se nejde spoléhat na to, že je vše načteno, jakmile se celkový počet onload ů rovná počtu obrázků.
|
||
Radek9 Profil |
#7 · Zasláno: 16. 1. 2012, 13:55:50
Chamurappi:
Aha, tak to je pro mě novinka, děkuju za poučení. Je tedy jiná (rychlejší) cesta, než nastavovat onload na window? |
||
Chamurappi Profil |
#8 · Zasláno: 16. 1. 2012, 16:41:16
Reaguji na Radka9:
Mít atribut onload přímo na <img> . Nebo vytvořit celý obrázek skriptem a nastavit mu onload před nastavením src .
|
||
Časová prodleva: 11 let
|
0