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

    Preload solo immagini visualizzate in pagina

    Ciao, mi sembra di aver visto su qualche sito questo tipo di prelading delle immagini, in sostanza il preloading lo fa solo delle immagini che sono visualizzate su schermo, e visualizza le altre (ad esempio se è una pagina molto lunga, sotto) gradualmente. Premetto che non so programmare in javascript, sapreste dirmi se avete già incontrato questo tipo di preloading e magari cosa cercare?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Beh, prova questo:
    Codice PHP:
    <html>
    <
    head>
    <
    script language="JavaScript">
    function 
    loadImage(imgUrlloading_in_millisecondi){
      
    document.getElementsByTagName('SPAN')[0].innerHTML='Caricamento...';
      
    setTimeout("document.getElementsByTagName('SPAN')[0].innerHTML='[img]+imgUrl+[/img]';"loading_in_millisecondi);
    }
    </script>
    </head>
    <body>
    <span>
    <input type="button" onclick="loadImage('http://utenti.html.it/common/img/logo_forum.gif', 5000);" value="Visualizza immagine" />
    </span>
    </body>
    </html> 
    Questo script visualizzerà l'immagine solo 5 secondi dopo aver cliccato "Visualizza immagine".
    Forse questo si avvicina a ciò che intendevi.

    Testato con: Chrome 7.0.517.44
    Firefox 4.0 beta 7
    Internet Explorer 8.0.7600.16385

    Spero sia stato d'aiuto

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248
    Ciao, grazie dell'aiuto ma non è quello che cerco.
    Il JS dovrebbe visualizzare le immagini in automatico, ma caricando e rendendo visibili solo quelle che realmente appaiono su schermo senza comandi di click o over. Metti che in una pagina ci siano 500 foto ma sul monitor ne posso vedere solo 50 alla volta, le altre 450 me le dovrebbe caricare nella chce gradualmente quando scendo nella pagina.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248
    E' una cosa così Link

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Suppongo che sia jquery, visto che il sito ne fa un uso (abuso) elevato, spulcia il sorgente con pazienza.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    Allora, usando il mio, avresti potuto in ogni caso mettere il loading nell' onload del body, così:
    Codice PHP:
    <html
    <
    head
    <
    script language="JavaScript"
    function 
    loadImage(imgUrlloading_in_millisecondi){ 
      
    document.getElementsByTagName('SPAN')[0].innerHTML='Caricamento...'
      
    setTimeout("document.getElementsByTagName('SPAN')[0].innerHTML='[img]+imgUrl+[/img]';"loading_in_millisecondi); 

    </script> 
    </head> 
    <body onload="loadImage('http://utenti.html.it/common/img/logo_forum.gif', 5000);"> 
    <span> 
    </span> 
    </body> 
    </html> 
    Se lo vuoi fare con jQuery è comunque facile:

    Codice PHP:

    <html
    <
    head
    <
    script src="path_per_jquery.js" language="JavaScript"></script>
    <script language="JavaScript"> 
    document.getElementsByTagName('SPAN')[1].innerHTML = 'Caricamento...';
    $(document.getElementsByTagName('IMG')[0]).ready(function () {
      document.getElementsByTagName('SPAN')[1].innerHTML="Fatto";
    });
    </script> 
    </head> 
    <body onload=""> 
    <span>
    [img]http://utenti.html.it/common/img/logo_forum.gif[/img]
    </span>
    <span>
    </span>
    </body> 
    </html> 
    Se non funziona posta, ma fai conto anche che ho copiato il codice e ottimizzato dal sito ufficiale di jQuery.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248
    Inanzitutto grazie, il tuo l'ho provato ma va in loop e fa un cosa strana, mi carica tutta la pagina poi parte con l'immagine che ho scelto per il caricamento.
    Se tolgo la stringa
    codice:
    document.getElementsByTagName('SPAN')[0].innerHTML='Caricamento...';
    dovrebbe non succedere.
    Mentre scrivo poi mi è venuto in mente che il tag spam io l'ho messo all'interno di tutto il deiv che contiene le immagini, invece potrei farlo per ogni immagine giusto?
    Ultima cosa, quindi è un preload fasullo, cioè non è dato dal fatto se è caricata o meno nella chace l'immagine, ma se sono passati nel caso da te postato i 5000 (5 millisecondi 5 sec) Giusto?
    Grazie ancora cmq.

  8. #8
    Utente di HTML.it L'avatar di skjobax
    Registrato dal
    Jan 2010
    Messaggi
    569
    prego!
    Ecco le risposte ai quesiti:

    Sì: puoi farlo per tutte le immagini.
    Il mio è fasullo, ovvio.
    jQuery invece, attende di caricare la pagina, dato dalla funzione ready e poi carica in ultimo l'immagine col loading.

    Per il loop, dev'essere per il fatto che la funzione loadImage che ho creato non modifica più il contenuto dello span.
    Puoi rimediare, mettendo nel setTimeout questo:
    codice:
    document.getElementsByTagName('SPAN')[0].innerHTML='';
    Se vuoi che il load non sia fasullo, ti consiglio jQuery
    Il mio è solo un bluff

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.