Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JQuery]: problema con .each() e riferimento a this

    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!

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    this e' il riferimento corretto all' immagine

    prova ad assegnare delle dimensioni nel markup dell' immagine
    [img]img.jpg[/img]

    dopotutto tu esegui il tutto al DOMready, che non aspetta che le immagini vengano caricate

    se non puoi specificare le dimensioni comunque proverei ad eseguire il tutto all' onload
    $(window).load(function(){
    piuttosto che al DOMready
    $(document).ready(function(){

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.