Riciao a tutti,
questa mattina ho trovato un sito che proponeva un piccolo script per ridimensionare le immagini:
codice:
$(document).ready(function(){
$('#image img').each(function(index, value) {
var maxWidth = 100; // Larghezza massima delle immagini
var maxHeight = 100; // Altezza massima delle immagini
var ratio = 1; // Rapporto di grandezza - impsotare a "1" per rapporto giusto
var width = $(this).width(); // Larghezza dell'immagine ricavata in automatico
var height = $(this).height(); // Altezza dell'immagine presa in automatico
// Controllo se la larghezza è superiore al massimo impostato
if(width > maxWidth){
ratio = maxWidth / width; // prendo il rapporto di grandezza
$(this).css("width", maxWidth); // imposto la nuova larghezza
$(this).css("height", height * ratio); // Scalo l'immagine in base al rapporto
height = height * ratio; // Imposto l'altezza dell'immagine in base alla nuova larghezza ed al rapporto di grandezza
}//if
// Controllo se l'altezza è superiore al massimo consentito
if(height > maxHeight){
ratio = maxHeight / height; //prendo il rapporto di grandezza per ridimensionare l immagine
$(this).css("height", maxHeight); // imposto la nuova altezza
$(this).css("width", width * ratio); // imposto la nuova larghezza basata sul rapporto di grandezza
width = width * ratio; // Reimposto la larghezza in basse all'immagine scalata
}
});//function
});//DOM
Questo è il codice HTML:
codice:
<div id="image">
[img]img.jpg[/img]
</div>
Il problema è che il riferimento $(this) non funziona perché se provo a stampare il valore di "width" all'inizio (4° riga) mi viene dato sempre zero, se invece provo a stampare il valore width del dive che contiene l'immagine all'esterno del ciclo, il valore viene preso correttamente.
Dov'è il problema?
Grazie!