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

Discussione: Sfondo casuale

  1. #1

    Sfondo casuale

    Salve,
    ho un insieme di 5 immagini di sfondo, dovrei creare una pagina con lo sfondo che viene scelto casualmente da questo insieme, come posso fare?
    Inoltre, ogni 5 secondi, dovrebbe essere scelto, sempre casualmente, un nuovo sfondo al posto di quello attuale, è possibile?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    qualcosa del genere
    codice:
    number = 1;
    IDCAMBIO = "backgroundTD"
    maxNumber = 5
    refresh   = 5000
    
    function changeBg()
    {
    	var tdBG					= document.getElementById(IDCAMBIO);	
    	tdBG.style.backgroundImage	= "url('img/bg" +  number + ".jpg')";
    	number ++;
    	if (number==maxNumber) {number = 1;}
    }
    function init()
    {
    	var ww;var myImg 					= new Image();
    	for (ww=1;ww< maxNumber+1 ;ww++){	myImg.src 	= "/img/bg" +  ww + ".jpg";}
    	setInterval("changeBg()",refresh );
    }
    window.onload = init;
    qui si assume che immagini si chiamino bg1.jpg, bg2.jpg, bg3.jpg etc, che si trovino nella cartella IMG sulla root
    e che l'immagine da cambiare si trovi nel layer backgroundTD

    nel tuo caso sostituisci
    var tdBG = document.getElementById(IDCAMBIO);
    con
    con tdBG = document.getElementsByTagName("BODY").item(0)

  3. #3
    Scusa, potresti dirmi come e dove inserire questo codice nell'html della pagina?
    Grazie

  4. #4
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    mio consiglio è quello di tenere sempre separato il js dall'html

    quindi
    crei un file lo chiami changeBackground.js
    dove inserisci questo:
    codice:
        number = 1;
        maxNumber = 5
        refresh   = 5000
    
        function changeBg()
        {
        	var bodyBG = document.getElementsByTagName("BODY").item(0)
        	bodyBG.style.backgroundImage	= "url('img/bg" +  number + ".jpg')";
        	number ++;
        	if (number==maxNumber) {number = 1;}
        }
        function init()
        {
        	var ww;var myImg 					= new Image();
        	for (ww=1;ww< maxNumber+1 ;ww++){	myImg.src 	= "/img/bg" +  ww + ".jpg";}
        	setInterval("changeBg()",refresh );
        }
        window.onload = init;
    poi lo puoi collegare quando ti pare con
    codice:
    <script type="text/javascript" src="changeBackground.js"> </script>
    che ci sia uno spazio tra <script...> e </script> e modifica eventualmente i percorsi ai file immagini e la nominazione

  5. #5
    Grazie mille,
    in effetti la tua soluzione va benissimo. Ma, dal momento che lo sfondo è più piccolo della finestra, è possibile fare in modo che lo sfondo non si ripeta? Qualcosa tipo no-repetition o simili? L'ideale sarebbe se si potesse anche centrare...
    Grazie ancora, ciao

  6. #6
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    certo
    la sintassi di background è
    codice:
    bodyBG.style.backgroundImage	= "url('img/bg" +  number + ".jpg')Posizionemento_x Posizionamento_y RIPETIZIONE COLORE";
    es.
    codice:
    bodyBG.style.backgroundImage = "url(/img/bg"+number+".jpg) top left no-repeat #FFF";

  7. #7
    Grazie, ho provato, però mi dà un errore: Argomento non valido.
    Sai come mai o come potrei fare?

  8. #8
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    taglio la testa al toro, gli dai 1 proprieta' alla volta

    codice:
    bodyBG.style.backgroundImage= "url('img/bg"+number+".jpg')";
    bodyBG.style.backgroundAttachment = "no-repeat";

  9. #9
    Ancora mi dà errore:
    Impossibile ottenere la proprietà backgroundAttachment. Argomento non valido
    Ci sono altre possibilità?

  10. #10
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    mmm, forse ti conviene fare una classe a posta e dargliela con
    .className
    cmq fai prima una prova:
    bodyBG.style.background = "url(/img/bg"+number+".jpg) top left no-repeat #FFF";

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.