Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    15

    [JS] setAttribute non funziona con valori passati da funzione, invece scrivendoli si

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

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    15
    Nessuno che mi riesce a dare una mano su quesa cosa?

    PS: se un moderatore passa di qui può modificare il messaggio chiudendo bene il CODE please che nn me lo fa più fare a me? grazie

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non vedo errori e da un test veloce procede come previsto
    lascia un link

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.