Non sono assolutamente un esperto di java, ma son riuscito a fare uno script per cambiare immagine all'interno di una pagina cliccando su piccoli "thumb" o su un tasto "precedente/successivo. Il mio problema e' che vorrei ridimensionare l'immagine nuova che si carica dentro la finestra per essere certo che la pagina rimanga formattata correttamente. Ho programmato una piccola funzione che sembra lavorare bene ma, cosa che non comprendo, il ridimensionamento si attiva solo ad un secondo click sul thumb! Praticamente, clicco una prima volta su un'immagine da carica re e questa viene caricata con le dimensioni di default (la funzione che ho scritto sembra non rilevare la larghezza e altezza originale dell'immagine), ma ad un secondo click funziona correttamente e ridimensiona l'immagine. Inoltre, se inserisco un alert per il debug della funzione (ad esempio per verificare se ha caricato altezza e larghezza), 'lalert mi dice che i valori caricati sono 0 e 0, poi pero' quando clicco sull'ok per far scomparire l'alert, l'immagine si ridimensiona nella maniera corretta. Mi permetto di riportare qualche riga di codice nella speranza che qualche "guru" mi riesca a spiegare dove sbaglio!!!
grazie mille!
funzione per ridimensionare l'immagine:
function getImgSize(imgSrc)
{
var newImg = new Image();
newImg.src = imgSrc;
var altezza = newImg.height;
var larghezza = newImg.width;
if (larghezza > 333) { percentage = (333 / larghezza); }
else { percentage = (1); }
larghezza = (larghezza * percentage);
altezza = (altezza * percentage);
if (altezza > 219) { percentage = (219 / altezza); }
else { percentage = (1); }
d = document.getElementById('immagine_grande');
//alert ('The image size is '+larghezza+'*'+altezza);
d.style.width = (larghezza * percentage)+'px';
d.style.height = (altezza * percentage)+'px';
}
funzione che cambia immagine e richiama il ridimensionamento (contiene una linea di php):
function changeImage(nuova){
document.getElementById('immagine_grande').src= nuova;
img = new Array();
var i=1; found=0;
while (i <= 10) { img[i]=null; i++; }
<? $count = count($img);
foreach ($img as $key => $value) {
echo "img[$key] = 'http://www.xxx.com/php/images/$value';"; } ?>
i=1;
while (i <= 10) { if (img[i]==nuova) { found=i; } i++; }
document.getElementById('curPhoto').innerHTML = found;
getImgSize(nuova);
}