Ciao ragazzi, mi rendo conto che il titolo nn è molto chiaro.
Ho questo problema che mi sta facendo diventare matto....
Ho dei thumbnail sulla pagina, ci clicchi sopra e il javascript va a sostituire la descrizione dell'immagine e il src dell'immagine. Ora ho fissato che la larghezza/altezza massima dell'immagine dev'essere 480px. Quindi con una funzione vado a calcolare quando sarà in proporzione width e height. Lo passo alla funzione che va a sostituire tutto e lo setto come attributo. Ora, se nella funzione sotto io scrivo a mano
codice:
//numeri inventati
oWidth='480';
oHeight='760';
Il codice funziona. Se invece i valori li psso con la funzione
codice:
//recuperiamo larghezza e altezza ricalcolati
widthAndHeigth=getSizes(idd).split("/");
oWidth=widthAndHeigth[0];
oHeight=widthAndHeigth[1];;
no. Ho fatto l'alert dei valori passati e li passa bene ma nn ne vuole sapere di prenderli per settare l'attributo.
Le 2 righe incriminate sono
codice:
imgDiv.setAttribute('width',oWidth);
imgDiv.setAttribute('height',oHeigth);
Grazie in anticipo, di seguito il codice intero.
codice:
var imgMax=480;
//funzione che va a rimpiazzare l'immagine grossa con quella cliccata
function imgGetLarge(idd)
{
//recuperiamo la descrizione e il link dell'immagine
oDescription=document.getElementById("description" + idd).value;
oLink=document.getElementById("link" + idd).value;
//recuperiamo larghezza e altezza ricalcolati
widthAndHeigth=getSizes(idd).split("/");
oWidth=widthAndHeigth[0];
oHeight=widthAndHeigth[1];
//i div da sostituire
alert(oWidth);
descDiv=document.getElementById("IMG_description");
imgDiv=document.getElementById("IMG_largeSub");
//sostituiamo il div e il src dell'img
imgDiv.src=oLink;
descDiv.innerHTML=oDescription;
//settiamo i nuovi attributi
imgDiv.setAttribute('width',oWidth);
imgDiv.setAttribute('height',oHeigth);
}
//funzione per calcoalre quanto devesser alta e larga l'immagine da andare a mettere in grande
function getSizes(idd)
{
//recuperiamo i valori attuali
currentWidth=document.getElementById("img" + idd).getAttribute("width");
currentHeight=document.getElementById("img" + idd).getAttribute("height");
if(currentWidth>currentHeight){//più largo che alto
divisor=currentWidth/imgMax;
bigWidth=Math.floor(currentWidth/divisor);
bigHeight=Math.floor(currentHeight/divisor);
}else{//più alto che largo oppure uguale
divisor=currentHeight/imgMax;
bigWidth=Math.floor(currentWidth/divisor);
bigHeight=Math.floor(currentHeight/divisor);
}
return bigWidth + '/' + bigHeight;
}