Visualizzazione dei risultati da 1 a 10 su 10

Discussione: correzione script

  1. #1
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006

    correzione script

    uso questo scriptino per ridimensionare una popup in base alle dimensioni dell'immagine
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html lang="IT">
     <head>
      <title>Immagine prodotto</title>
       <basefont size="2" face="Verdana">
     </head>
    <body link="#0000FF" alink="#FF0000" vlink="#0000FF" topmargin="0" leftmargin="0">
    
    <script language="javascript" type="text/javascript">
     <!--
      var querystring = location.search;
      var id = querystring.substr(4);
      document.write("[img]"+ id + "[/img]");
      function ReimpostaDimensioni()
      {
        window.resizeTo(immagine.width, immagine.height);
      }
      window.setTimeout("ReimpostaDimensioni()", 1000);
     //-->
    </script> 
    
    
    </body>
    </html>
    vorrei però fare in modo che se l'immagine è larga più di 800px mi ridimensioni la popup a 800 e che se è più larga di 600 la ridimensioni a questo valore.avevo pensato di fare così

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html lang="IT">
     <head>
      <title>Immagine prodotto</title>
       <basefont size="2" face="Verdana">
     </head>
    <body link="#0000FF" alink="#FF0000" vlink="#0000FF" topmargin="0" leftmargin="0">
    
    <script language="javascript" type="text/javascript">
     <!--
      var querystring = location.search;
      var id = querystring.substr(4);
      document.write("[img]"+ id + "[/img]");
      function ReimpostaDimensioni()
      {
        window.resizeTo(immagine.width, immagine.height);
    
    	if (immagine.width > "800") { window.resizeTo("800", immagine.height) } ;
    	if (immagine.height > "600") { window.resizeTo(window.width, "600") } ;
    
      }
      window.setTimeout("ReimpostaDimensioni()", 20000);
     //-->
    </script> 
    
    
    </body>
    </html>
    ma ovviamente non funzia....come risolvo?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ciao S|n3
    prova a togliere gli apici sia nella condizione che nel resizeTo
    (hai sicuramente a che fare con valori numerici)

    il problema potrebbero anche essere window.width e height
    che non credo siano corretti
    per risalire alle dimensioni effettive della finestra occorrerebbe
    un resize a vuoto

    visto che non è ora adesso :bubu:
    ti lascio un link a script in cui la finestra si ridimensiona precisamente all' immagine
    (se cerchi nel forum ci sono anche altri approcci al problema)
    almeno per chiarire la questione della dimensione della finestra

  3. #3
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    visto ma quel link non mi è molto utile.
    effettivamente il problema sembra essere in quel window.width che non viene riconosciuto.
    quindi il problema è...come ricavo la dimensione della finestra?

  4. #4
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    altra cosa...il resize attualmente lo fa dopo un delay....si può far ridimensionare al termine del caricamento dell'immagine invece?

  5. #5
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    ho corretto così
    codice:
    <script language="javascript" type="text/javascript">
     <!--
      var querystring = location.search;
      var id = querystring.substr(4);
      document.write("[img]"+ id + "[/img]");
      function ReimpostaDimensioni()
      {
        
    	w = immagine.width;
    	h = immagine.height;
    	if (immagine.width > 800) { w = 800 } ;
    	if (immagine.height > 600) { h = 600) } ;
    window.resizeTo(w, h);
    
      }
      window.setTimeout("ReimpostaDimensioni()", 10000);
     //-->
    </script>
    perchè non và :master:

  6. #6
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    ops...c'era una parentesi di troppo
    ora funziona.
    rimane un'unica domanda:
    posso farla ridimensionare a caricamento immagine terminato e non dopo un intervallo di tempo fisso?

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da s|n3
    visto ma quel link non mi è molto utile.
    effettivamente il problema sembra essere in quel window.width che non viene riconosciuto.
    quindi il problema è...come ricavo la dimensione della finestra?
    beh, in quello script c' è la soluzione per ottenere le dimensioni della finestra:

    apro con window.open una finestra di 150*150 px con solo la barra del titolo visibile
    nel file che apro in finestra

    b_w=function() {return ((window.innerWidth)?window.innerWidth:document.bo dy.clientWidth)}
    b_h=function() {return ((window.innerHeight)?window.innerHeight:document. body.clientHeight)}
    rsz=function() {self.resizeTo(ww,hh)}

    onload richiamo init:

    function init() {
    ww=b_w() // rilevo larghezza parte visibile del documento
    hh=b_h() // rilevo altezza parte visibile del documento
    rsz() // opero il resize con i 2 valori ottenuti
    // mentre width e height nel window.open si riferiscono solo alla parte visibile del documento
    // il resize agisce su tutta la finestra barre e telaio compresi:
    // ridimensionare a 640*480 vuol dire avere una finestra con quelle dimensioni
    // non 640*480 pixel visibili del documento


    ww2=b_w() // rilevo nuovamente larghezza parte visibile del documento
    hh2=b_h() // altezza

    // in w_add e h_add ho quanto devo aggiungere alle dimensioni dell' immagine
    // per ridimensionare la finestra sicuro di mostrare tutta l' immagine

    w_add=(ww-ww2)
    h_add=(hh-hh2)

    // procedo a ridimensionare
    ridimensiona()
    }

    molti semplificano la faccenda:
    aggiungono un 28 px all' altezza (barra del titolo) e un 12 px alla larghezza (telaio)
    ma non tutti i browser usano precisamente queste misure, ecco perchè preferisco ricavarle

    la funzione la richiamo onload, così evito il problema di sapere quando l' immagine è stata caricata completamente, altrimenti...

    nel tag dell' immagine puoi usare il gestore eventi onload
    [img]percorso/immagine.jpg[/img]
    che dovrebbe essere supportato da tutti i browser

    ciauz

  8. #8
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    sì sì...l'avevo visto...ma ho risolto controllando le dimensioni dell'immagine.
    è più pratico e più "pulito"

    piuttosto sai dirmi come faccio a far richiamare la procedura di ridimensionamento alla fine del caricamento dell'immagine?
    basta un onload = "ReimpostaDimensioni()" ?

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sì, sull' immagine o direttamente sul body

    cmq ripeto che secondo me un aggiustata alle misure andrebbe cmq data:
    se l' altezza dell' immagine è 600 ridimensionare la finestra a 600 px non ti farà vedere tutta l' immagine


  10. #10
    Utente bannato
    Registrato dal
    Feb 2000
    Messaggi
    2,006
    Originariamente inviato da Xinod
    sì, sull' immagine o direttamente sul body

    cmq ripeto che secondo me un aggiustata alle misure andrebbe cmq data:
    se l' altezza dell' immagine è 600 ridimensionare la finestra a 600 px non ti farà vedere tutta l' immagine

    :master: in che senso....in realtà mi rubo qualche pixel per le scrollbar nel caso sia più grande di 800x600 (avrei voluto farlo in base alla risoluzione ma il cliente vuole quelle dimensioni).se invece l'immagine < 800*600 posso ridimensionare la popup senza problemi alla dimensione esatta perchè ci levo le scrollbars.

    o no? :master:

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.