| 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: 15 let
|
|||
0