Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    2

    Galleria immagini - resize della finestra

    Ciao a tutti,
    faccio il mio primo post sul forum con una domandina che probabilmente per molti sarà banale.

    Devo fare una galleria di immagini con pulsante avanti e indietro, e una immagine visualizzata alla volta. Mi chiedono di fare in modo che la finestra del browser venga ridimensionata automaticamente a seconda dell'immagine. Io ho scritto questo codice:

    codice:
    function chgImg(direction) {
    
    if (document.images) {
    ImgNum = ImgNum + direction;
    if (ImgNum > ImgLength) {
    ImgNum = 0;
    }
    if (ImgNum < 0) {
    ImgNum = ImgLength;
    }
    tmp = new Image();
    tmp.src = NewImg[ImgNum];
    
    window.resizeTo(tmp.width+100,tmp.height+140);
    document.slideshow.src = NewImg[ImgNum];
    document.slideshow.alt = NewTxt[ImgNum];
    document.getElementById("CaptionBox").innerHTML = NewTxt[ImgNum];
       }
    }
    Il problema è che la funzione che rileva la dimensione dell'immagine, va a buon fine solo quando l'immagine è stata completamente caricata. Con l'effetto che la finestra viene ridimensionata a dimensione francobollo. Poi quando tutte le immagii sono in cache, ilproblema scompare.
    La domanda è: come posso evitare la cosa senza fare un preload di tutte le immagini che costituiscono la galleria? E' possibile aggiungere un controllo che attenda il caricamento dell'immagine prima di fare il resize della finestra?

    Grazie,
    Bl@de

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    prova scrivendo, al posto di
    tmp.src = NewImg[ImgNum];
    window.resizeTo(tmp.width+100,tmp.height+140);
    codice:
    tmp.onload=function(){
      window.resizeTo(this.width+100,this.height+140);
    }
    tmp.src = NewImg[ImgNum];
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    2
    codice:
    tmp.onload=function(){
      window.resizeTo(this.width+100,this.height+140);
    }
    tmp.src = NewImg[ImgNum];
    ciao
    Mitico! Grazie Xinod, funziona!
    Avevo provato anche io, nel mio approccio euristico al problema, con l'onload handler, ma lo avevo messo dopo la riga

    codice:
    tmp.src = NewImg[ImgNum];
    e evidentemente non funzionava!
    Beh era più semplice di quanto credessi!
    Grazie ancora.

    Ciao,
    Bl@de

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.