Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Domanda Sfondi Variabili

    Salve a tutti :tongue:

    Posso chiedervi un favore?

    Nell'home page del mio sito ho messo questo codice per gli sfondi variabili:

    <HTML>
    <HEAD>

    <TITLE>Verdi Reami</TITLE>

    <script language="JavaScript">

    var backgr1="sfondo01.jpg"
    var backgr2="sfondo02.jpg"
    var backgr3="sfondo03.jpg"

    var cur=Math.round(6*Math.random())
    if (cur<=1)
    backgr=backgr1
    else if (cur<=4)
    backgr=backgr2
    else
    backgr=backgr3
    document.write('<body background="'+backgr+'" bgcolor="#ffe4c4" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">')
    </script>


    </HEAD>

    <BODY bgcolor="white">


    </body>
    </html>
    Il problema è che è impostato solo per 3 sfondi...

    La mia domanda è: Cosa devo mettere per fare in modo che faccia il random di 6 immagini?

    Thx per l'attenzione :tongue:

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Vale la pena sistemare la cosa utilizzando le matrici, altrimenti devi modificare lo script ogni volta che aggiungi o togli uno sfondo:
    codice:
    var backgr = new Array();
    backgr[0] = "sfondo01.jpg";
    backgr[1] = "sfondo02.jpg";
    backgr[2] = "sfondo03.jpg";
    // ....
    
    var cur=Math.floor(backgr.length * Math.random());
    
    document.write('<body background="'+backgr[cur]+'" bgcolor="#ffe4c4" te
    xt="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">')
    In questo caso lo script decodifica da solo quanti sono gli sfondi e calcola il random su tale numero.

    Nota: Il background non andrebbe messo con l'attributo (deprecato) background, ma andrebbe inserito nei CSS.

    In tal caso puoi fare cosi`:
    codice:
    <head>
    ...
    <script ...>
    var backgr = new Array();
    backgr[0] = "sfondo01.jpg";
    backgr[1] = "sfondo02.jpg";
    backgr[2] = "sfondo03.jpg";
    // ....
    
    function sfondo() {
      var cur = Math.floor(backgr.length * Math.random());
      document.body.style.background = backgr[cur];
    }
    </script>
    
    <style type="text/css">
    body {
       background-color: #ffe4c4";
       text-color: #000000;
       :link: #0000FF;
       :vlink: #800080;
       :alink: #FF0000;
    }
    </style>
    </head>
    <body onload="sfondo();">
    ...
    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Mmmm... non mi va... non credo di aver capito bene... alla fine, inserendo le stringhe che mi hai dato, il codice è così:

    <script language="JavaScript">
    /*Random Background Image-
    By Website Abstraction (www.wsabstract.com)
    More free JavaScripts here!
    */
    var backgr = new Array();
    var backgr[1]="sfondo01.jpg"
    var backgr[2]="sfondo02.jpg"
    var backgr[3]="sfondo03.jpg"

    function sfondo() {
    var cur = Math.floor(backgr.length * Math.random());
    document.body.style.background = backgr[cur];
    }
    </script>

    <style type="text/css">
    body {
    background-color: #ffe4c4";
    text-color: #000000;
    :link: #0000FF;
    :vlink: #800080;
    :alink: #FF0000;
    }
    </style>
    E' giusto?

    Sennò dimmi cosa ho sbagliato

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dovresti anche dire cosa non va.

    Comunque un errore e` nell'inserire l'array.
    Gli indici devono iniziare da 0 (vedi il mio codice).

    Comunque ti conviene fare un passo alla volta, utilizzando dapprima il primo codice, poi dovresti dae un'occhiata ai CSS (vedi tutorial in HTML.it) e quindi applicando l'altro codice.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    L'errore è riga 12, carattere 11, errore=previsto ';'

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non so quale sia la riga 12.

    Comunque quell'errore sta ad indicare che c'e` un errore di sintassi in quella riga o nelle precedenti.
    Probabilmente ci sono degli apici o virgolette non correttamente appaiati o innestati.

    Se non lo trovi da solo, posta il codice fino alla riga 12.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Allora, dato che non sono molto esperto di HTML ( :tongue: ) ti posto tutto il codice

    Mi potresti dire più precisamente dove modificare e se non è chiederti troppo, scrivermi tutto il codice corretto?

    <HTML>
    <HEAD>

    <TITLE>Verdi Reami</TITLE>

    <script language="JavaScript">

    var backgr1="sfondo01.jpg"
    var backgr2="sfondo02.jpg"
    var backgr3="sfondo03.jpg"

    var cur=Math.round(6*Math.random())
    if (cur<=1)
    backgr=backgr1
    else if (cur<=4)
    backgr=backgr2
    else
    backgr=backgr3
    document.write('<body background="'+backgr+'" bgcolor="#ffe4c4" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">')
    </script>


    </HEAD>

    <BODY bgcolor="white">


    </body>
    </html>

    <BODY bgcolor="white">



    </p>


    </p>


    </p>


    </p>


    </p>


    </p>


    </p>


    </p>


    </p>


    </p>


    </p>

    </body>
    </html>
    Grazie e scusa per il disturbo

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Come dire che scrivi due volte il body della pagina. E il problema c'era dall'inizio. Non era quindi un problema di random che funzionava solo per tre sfondi, era un problema di impostazione della pagina (ed io ci sono cascato).

    Quello script va inserito al posto del tag body, dato che lo sostituisce.

    Solo che io mi rifiuto di fare accrocchi di quel tipo (che magari in qualche browser non funzionano piu`).

    Quindi ti posso passare lo script completo, come lo avevo impostato all'inizio.
    codice:
    <html>
    <head>
    <title>Verdi Reami</title>
    <script language="javascript" type="text/javascript">
    
    var backgr = new Array();
    backgr[0] = "sfondo01.jpg";
    backgr[1] = "sfondo02.jpg";
    backgr[2] = "sfondo03.jpg";
    // ....
    
    function sfondo() {
      var cur = Math.floor(backgr.length * Math.random());
      document.body.style.background = backgr[cur];
    }
    </script>
    
    <style type="text/css">
    body   { background-color: #ffffff"; text-color: #000000; }
    :link  { text-color: #0000FF; }
    :vlink { text-color: #800080; }
    :alink { text-color: #FF0000; }
    img#entra { width: 202px; height: 183px; border: 0px; } 
    }
    </style>
    </head>
    
    <body onload="sfondo();">
    
    
    &amp;nbsp;</p>
    
    
    </p>
    
    </body>
    </html>
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Ho provato a mettere il codice che mi hai dato, ma adesso mi da un altro errore... riga 16, carattere 3, argomento non valido

    Vabbè, terrò 3 sfondi, nel caso non riesca a risolverlo :tongue:

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Bisognerebbe sapere quale e` la riga 16 nel tuo caso specifico.

    Quell'errore puo` anche essere dato da parentesi o virgolette non correttamente innestate, anche in una riga precedente a quella segnalata.
    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 © 2026 vBulletin Solutions, Inc. All rights reserved.