Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: immagini random...

  1. #1
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    immagini random...

    salve, mi hanno detto di postare qua.. ho una pagina html con codice php dove ad ogni refresh cambio un immagine.. adesso, io vorrei che l'immagine cambiasse ogni tot secondi, e mi hanno detto che per fare ciò devo usare javascript, in quanto con php non è possibile..

    Ho salvato diverse immagini con lo stesso nome e numero a incrementare (immagine01, immagine02, immagine03, e cosi via..) in una cartella /images.

    il codice php che uso per cambiare le immagini in maniera random è questo:

    $casuale = mt_rand(1,11);
    echo "<img src=\images/NOMEIMMAGINE$casuale.jpg \">";

    come potrei "temporizzare" questo? magari per fare in modo che l'immagine cambi ogni tot secondi?
    spero che qualcuno possa darmi una mano..
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quanto la pagina e` sul client, il codice PHP non esiste piu`.
    Quindi e` chiaro che non puoi usare PHP.

    Devi chiamare una funzione JS che ad intervalli regolari faccia il rollover dell'immagine.

    Esempio:
    nella head:
    codice:
    <script type="text/javascript">
    var radice = "/images/immagine";
    var estens = ".jpg";
    var max = <?PHP echo"$numero"?>; 
    var oggetto = "ID_IMMAGINE";
    function cambiaimm() {
      var rr = Math.floor(Math.random() * max); // (*)
      rr = (rr<10) ? "0" : "" + rr;
      document.getElementById(oggetto).src = radice+rr+estens;
    }
    </script>
    nel body:
    <body onload="setInterval('cambiaimm()', 10000);">
    ...
    [img]quellochevuoi.jpg[/img]

    Il valore di max va posto uguale al numero delle immagini

    (*) Se le immagini inizano da imamgine00.jpg , va bene cosi`, altrimenti se iniziano da immagine01 va sostituito con:
    var rr = Math.floor(Math.random() * max + 1);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    proverò appena avrò un attimo di tempo, e ti faccio sapere..
    intanto grazie per ora!
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  4. #4
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da Mich_
    Quanto la pagina e` sul client, il codice PHP non esiste piu`.
    Quindi e` chiaro che non puoi usare PHP.

    Devi chiamare una funzione JS che ad intervalli regolari faccia il rollover dell'immagine.

    Esempio:
    nella head:
    codice:
    <script type="text/javascript">
    var radice = "/images/immagine";
    var estens = ".jpg";
    var max = <?PHP echo"$numero"?>; 
    var oggetto = "ID_IMMAGINE";
    function cambiaimm() {
      var rr = Math.floor(Math.random() * max); // (*)
      rr = (rr<10) ? "0" : "" + rr;
      document.getElementById(oggetto).src = radice+rr+estens;
    }
    </script>
    nel body:
    <body onload="setInterval('cambiaimm()', 10000);">
    ...
    [img]quellochevuoi.jpg[/img]
    siccome non sono un grande esperto di javascript (e per questo ti ringrazio per avermi tirato giù queste righe di codice.. )
    volevo dei chiarimenti riguardo il codice..
    per esempio ...

    Originariamente inviato da Mich_
    [img]quellochevuoi.jpg[/img]
    quellochevuoi è semplicemente il nome dell'immagine, giusto?

    Originariamente inviato da Mich_
    var radice = "/images/immagine";
    nel percorso "/images/immagine" cosa s'intende con IMMAGINE? il nome delle immagini?

    Originariamente inviato da Mich_
    var max = <?PHP echo"$numero"?>;
    var oggetto = "ID_IMMAGINE";
    invece $numero e ID_IMMAGINE cosa rappresentano? :master:

    magari sono stupidate, e per questo ti dico grazie in anticipo per la pazienza, se mi risponderai..
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  5. #5
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    [img]quellochevuoi.jpg[/img]
    se per esempio le foto si chiamano milano01, milano02, milano03... al posto di "quellochevuoi" devo mettere solo "milano" ? intendo, con o senza il numero ?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Allora:
    radice e` la variabile che contiene tutto il nome (compreso path) fino al numero escluso
    estens contiene quello che viene dopo il numero

    Nel mio esempio sono partito dai dati che avevi messo.

    quellochevuoi e` il path completo dell'immagine, non il suo nome.

    ID_IMMAGINE e` il valore dell'attributo id da mettere nel tag <img>. Deve essere un nome che inizia per lettera, contiene solo lettere e numeri (anche _ ) e deve essere unico nella pagina.

    max deve contenere il numero totale delle immagini con quella radice e quella estensine. Il browser nonpuo` sapere quanti file ci sono sul server, per cui e` un valore che devi passare, ad esempio tramite PHP; pero` se e` un valroe fisso, basta che scrivi:
    max = 15
    (supponendo i nomi da milano01.jpg a milano15.jpg)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da Mich_
    quellochevuoi e` il path completo dell'immagine, non il suo nome.
    quindi la stringa da ..
    [img]quellochevuoi.jpg[/img]

    diventa..
    [img]/images/milano.jpg[/img]

    Originariamente inviato da Mich_
    radice e` la variabile che contiene tutto il nome (compreso path)
    quindi radice da..
    var radice = "/images/immagine";

    diventa..
    var radice = "/images/milano";

    Originariamente inviato da Mich_
    ID_IMMAGINE e` il valore dell'attributo id da mettere nel tag <img>. Deve essere un nome che inizia per lettera, contiene solo lettere e numeri (anche _ ) e deve essere unico nella pagina.
    ID_IMMAGINE può essere una stringa casuale?

    correggimi se sbaglio qualcosa qua sopra..
    se proprio non riesco a risolvere ti posto il codice html della pagina.
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    [img]/images/milano.jpg[/img]
    Non direi, a meno che non hai un'immagine che si chiama "milano.jpg" (senza il valore numerico).
    Quella e` l'immagine che viene vista al momento del caricamento della pagina.

    diventa..
    var radice = "/images/milano";
    corretto.

    ID_IMMAGINE può essere una stringa casuale?
    Non direi, ma non deve essere casuale. Deve essere una stringa valida, e ID_IMMAGINE e` una stringa valdia per un nome.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    perdona la mia durezza...ti posto il codice.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <link rel="stylesheet" href="/style.css" type="text/css">


    <script type="text/javascript">
    var radice = "/images/inizio";
    var estens = ".jpg";
    var max = <?PHP echo"$numero"?>;
    var oggetto = "ID_IMMAGINE";
    function cambiaimm() {
    var rr = Math.floor(Math.random() * 11 + 1);
    rr = (rr<11) ? "0" : "" + rr;
    document.getElementById(oggetto).src = radice+rr+estens;
    }
    </script>

    </head>
    <body>
    <h1>HOME PAGE</h1>
    <lnk>Attributi CSS</lnk>


    <body onload="setInterval('cambiaimm()', 100);">
    [img]/images/milano.jpg[/img]

    </body>
    </html>

    adesso, ti spiego. nel root ce la cartella IMAGES, e dentro questa ci sono undici immagini nominate milano01, milano02, milano03 ... milano04. Inoltre, nella cartella IMAGES ce un immagine di nome inizio.
    grazie ancora per la pazienza...
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Nella pagina ci sono gravi errori HTML. Qualche browser potrebbe non visualizzare correttamente:
    1. manca il title (nella head)
    2. ci sono due <body> (non e` permesso)
    3. il tag <lnk> non esiste (a mia conoscenza)

    Poi ci sono errori nel codice JS.
    Lo riscrivo tutto (manca anche una parentesi nel codice che ti avevo dato).
    codice:
    var radice = "/images/milano";
    var estens = ".jpg";
    var max = 11;
    var oggetto = "ID_IMMAGINE";
    function cambiaimm() {
      var rr = Math.floor(Math.random() * max + 1);
      rr = ((rr<11) ? "0" : "") + rr;
      document.getElementById(oggetto).src = radice+rr+estens;
    }
    Il tag <img> deve essere cosi`:
    [img]/images/inizio.jpg[/img]

    La frequenza di aggiornamento e` troppo veloce: 10 immagini al secondo non credo possano passare dalla rete.

    Prova mettendo il tempo nel setInterval almeno a 10000.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.