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

    problema su cambio immagine

    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);
    }
    .................................................. .......

    ...how to smile between boredom & guns...

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se chiedi le dimensioni prima che l' immagine venga completamente caricata e' normale ti venga restituito 0,0

    prova seguendo questa procedura
    codice:
    ...
    var newImg = new Image();
    newImg.onload=function(){
      fai quello che devi fare
      newImg.onload=null;
    }
    newImg.src = imgSrc;
    ...
    ciao

  3. #3
    perfetto! esattamente quel passaggio che mi mancava!
    grazie!!!!!!!!!!!
    .................................................. .......

    ...how to smile between boredom & guns...

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.