Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860

    aiutino con preload immagini

    salve ragazzi,

    io devo caricare, precaricare, delle immagini in una pagina di introduzione e alla fine del precaricamento passare alla pagina home.asp che ne farà uso..

    nel forum ho trovato questo ma non creod che funzioni...

    codice:
    <script>
    var immagini=new Array()
    function preload()
    {
         for (cont=0;cont<preload.arguments.length;cont++)
         {
              immagini[cont]=new Image()
              immagini[cont].src=preload.arguments[cont]
         }
    }
    preload("zona1_a.png","zona1_b.png","zona1_b2.png","zona3a.png","zona3b.png","zona2_a.png","zona2_b.png","zona2_c.png")
    location.href= "home.asp"
    </script>
    qualcuno mi potrebbe aiutare indicandomi un js che effettui efficacemente il preload delle immagini?

    grazie
    Linux Inside

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    nessuno che possa aiutarmi?
    Linux Inside

  3. #3
    il problema non è nello script di precaricamento, ma nel fatto che subito dopo aver lanciato il precaricamento, cambi la location della pagina, verso home.asp, impedendo così il precaricamento (ma quante volte mi sono ripetuto?) delle immagini.
    Dovresti fare in modo che il richiamo all'altra pagina, avvenga quando tutte le immagini si sono precaricate. Ripendendo il codice di prima, una cosa tipo:
    codice:
    <script>
    var immagini=new Array()
    function preload(){   
         var total=preload.arguments.length; // Totale immagini da preparicare
         var cc=0; // Contatore Immagini già precaricate
         for (cont=0;cont<total;cont++)
         {
              immagini[cont]=new Image();
              immagini[cont].src=preload.arguments[cont];
              immagini[cont].onload=function(){cc++;}
         }
         while(cc<total){}
         location.href= "home.asp"
    }
    preload("zona1_a.png","zona1_b.png","zona1_b2.png","zona3a.png","zona3b.png","zona2_a.png","zona2_b.png","zona2_c.png")
    </script>

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    mi spiace ma credimi di tutti quelli che avranno rotto i gioielli con i preload io sono quello che digerisce meno il js quindi ti lascio immaginare quanto ne capissi, ho preso questo script qui sul forum da una discussione e poi ho trovato le grane..

    un'ultima cosa

    il codice come lo hai postato te è così da mettere nella mia pagina o va alterato e adattato in qualche modo al mio caso



    grazie
    Linux Inside

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    cavolo ho provato ad inserirlo ma mi spuntano fuori dei problemini...

    dunque

    - il primo è una finestra di allert che avverte che uno x script sta rallentando l'esecuzione di iE e mi chiede se continuare o meno

    - i lsecondo è il fatto che preso lo script e poszionato fra itag <head> e </head>

    tutto quello che segue non viene visualizzato e quindi il codice presente fra <body> e </body> che dovrebbe essere la graffica di attesa non viene interpretato ed eseguito...

    come si può ovviare a questo?


    grazie
    Linux Inside

  6. #6
    devi associarlo all'evento onload della pagina di caricamento...
    Praticamente:
    codice:
    <html>
    <head>
    <script type="text/javascript" language="javascript">
    /*<![CDATA[*/
    var immagini=new Array()
    function preload(){   
         var total=preload.arguments.length; // Totale immagini da preparicare
         var cc=0; // Contatore Immagini già precaricate
         for (cont=0;cont<total;cont++)
         {
              immagini[cont]=new Image();
              immagini[cont].src=preload.arguments[cont];
              immagini[cont].onload=function(){cc++;}
         }
         while(cc<total){}
         location.href= "home.asp";}
    
    window.onload=preload("zona1_a.png","zona1_b.png","zona1_b2.png","zona3a.png","zona3b.png","zona2_a.png","zona2_b.png","zona2_c.png");
    /*]]>*/
    </script>
    </head>
    <body>
    Caricamento in corso....attendere prego...
    </body>
    </html>
    Naturalmente puoi modificare la parte del body...Cmq provalo...

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    l'ho inserito e il risultato è analogo a quello di prima ossia appare l'allert che recita che uno script rallenta il browser e che IE potrebbe non rispondere ed in più la pagina a livello grafico non si carica.

    in breve il codice della pagina è
    codice:
    <script type="text/javascript" language="javascript">
    /*<![CDATA[*/
    var immagini=new Array()
    function preload(){   
         var total=preload.arguments.length; // Totale immagini da preparicare
         var cc=0; // Contatore Immagini già precaricate
         for (cont=0;cont<total;cont++)
         {
              immagini[cont]=new Image();
              immagini[cont].src=preload.arguments[cont];
              immagini[cont].onload=function(){cc++;}
         }
         while(cc<total){}
         location.href= "home.asp";}
    
    window.onload=preload("zona1_a.png","zona1_b.png","zona1_b2.png","zona3a.png","zona3b.png","zona2_a.png","zona2_b.png","zona2_c.png");
    /*]]>*/
    </script>
    
    </head>
    <body style="margin:0; overflow: no;">
    <center>
    <Table bgcolor="#ffffff" width="100%" height="100%">
     <tr> 
       <td height="100%" valign="middle">
        <center>
    	 <Table width="760" height="440" bgcolor="#ffffff" cellpadding="0" cellspacing="0">
    	   <tr>
    		 <td valign="middle" border="0" height="440" width="760" style="background: url(intro.jpg) no-repeat">
              <div style=" width:760px; height:440px; padding-top: 134px; padding-left: 10px; font-family: Trebuchet MS, Verdana, Arial, Tahoma; font-size: 10px; color: #3765A3"> 
               Se entro pochi secondi non verrete reindirizzati, cliccate qui		  
    		  </div>
    		 </td>
    	   </tr>
    	 </table> 
        </center> 
       </td>
     </tr>
    </Table>
    </center>
    </body>
    Linux Inside

  8. #8
    l'alert penso sia dovuto al ciclo while di attesa caricamento immagini, che rimane li a non far nulla e quindi rallenta il browser...il body dovrebbe non comparire sempre per questo motivo, quindi cerchiamo di ovviare al problema..... cambiamo lo script così
    codice:
    <script type="text/javascript" language="javascript">
    /*<![CDATA[*/
    var immagini=new Array()
    var total; // Totale immagini da preparicare
    var cc=0; // Contatore Immagini già precaricate
    
    function preload(){
         total=preload.arguments.length; // Totale immagini da preparicare
         for (cont=0;cont<total;cont++)
         {
              immagini[cont]=new Image();
              immagini[cont].src=preload.arguments[cont];
              immagini[cont].onload=function(){cc++;}
         }
         setInterval('changePage()',1000);
    }
    
    function changePage(){
         if(cc>=total){location.href= "home.asp";}
    }
    
    window.onload=preload("zona1_a.png","zona1_b.png","zona1_b2.png","zona3a.png","zona3b.png","zona2_a.png","zona2_b.png","zona2_c.png");
    /*]]>*/
    </script>
    come sempre...prova...

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    860
    per funzionare sembra funzionare c'è soltanto un problema tecnico...

    dunque nella pagina di attesa c'è un'immagine (intro.jpg) che deve essere caricata altrimenti serve a poco..
    le immagini nel preload devo essere caricate anche loro come è giusto che sia.
    il risultato molto semplice che la pagina viene caricata, il testo se entro xx non siete reindirizzati ecc appare, ma il file intro.jpg appare a fine preload e quindi appare e un secondo dopo c'è il passaggio a home.asp.

    in breve in tutto il tempo che il preload carica le immagini del sito l'immagine di intro non appare perchè probabilmente non verrà caricata...
    Linux Inside

  10. #10
    ok....rimodifichiamo lo script....ora facciamo in modo che venga caricata l'immagine,e rimanga visibile per minimo tot secondi..
    Aggiungi un id all'immagine intro (es. imgIntro)
    codice:
    <script type="text/javascript" language="javascript">
    /*<![CDATA[*/
    var immagini=new Array()
    var total; // Totale immagini da preparicare
    var cc=0; // Contatore Immagini già precaricate
    
    function preload(){
         total=preload.arguments.length; // Totale immagini da preparicare
         for (cont=0;cont<total;cont++)
         {
              immagini[cont]=new Image();
              immagini[cont].src=preload.arguments[cont];
              immagini[cont].onload=function(){cc++;}
         }
    }
    
    function changePage(){
         if(cc>=total){location.href= "home.asp";}
    }
    
    window.onload=function(){
    preload("zona1_a.png","zona1_b.png","zona1_b2.png","zona3a.png","zona3b.png","zona2_a.png","zona2_b.png","zona2_c.png");
    document.getElementById('imgIntro').onload=function(){
                                                         setTimeout("setInterval('changePage()',1000)",4000);
                                                                                  }
    }
    /*]]>*/
    </script>
    Se vuoi cambiare il tempo minimo di visibilità dell'immagine intro.jpg devi andare a modificare il 4000 (4 secondi)...

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.