Riciao a tutti,
questa mattina ho trovato un sito che proponeva un piccolo script per ridimensionare le immagini:
Questo è il codice HTML: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
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!

Rispondi quotando