• User

    slider javascript

    Salve, volevo creare una semplice funzione che cambiasse il background di un div, avevo pensato una cosa simile, ma esattamente non so bene come utilizzare il setInterval.
    Praticamente le immagini si chiamano 1,2,3 e a 4 il contatore dovrebbe tornare a 1. La funzione dovrebbe attivarsi ogni secondo attraverso il setInterval. Al livello di html cosa devo fare?

    <script>
    var contatore = 1;

    function slider(contatore){

    document.write ('<style type="text/css">div#slider{width:30%; height:400px; border:Solid; background:url('+ contatore +'.jpg);}</style>');

    if (contatore > 3){
    contatore = 1;

    }else{
    contatore = contatore + 1;
    }
    setInterval("slider(contatore)", 3000);
    return contatore;
    }

    slider(contatore);

    </script>


  • Moderatore

    Ciao,
    prova così:

    [HTML]
    <script>
    var contatore = 1;

    function slider(){
    document.write ('<style type="text/css">div#slider{width:30%; height:400px; border:Solid; background:url('+ contatore +'.jpg);}</style>');

    if (contatore > 3) {
    contatore = 1;
    } else {
    contatore = contatore + 1;
    }
    }

    slider(contatore);
    setInterval(slider, 3000);
    </script>
    [/HTML]

    Anche se per fare uno slider credo serva anche altro.


  • User

    Dopo 3 secondi mi scompare la prima immagine e non appare piu niente


  • User Attivo

    Ci sono tanti plugin jQuery e non, perchè vuoi ricreare la ruota?

    Ad ogni modo non ho testato il tuo codice, ma a primo impatto mi salta all'occhio questo errore:

    
    setInterval("slider(contatore)", 3000);
    
    

    Nella funzione "setInterval" così come nella "setTimeout" non puoi passare parametri alle funzioni, se non creando una funzione anonima, es:

    
    setInterval( function(){ slider(contatore); }, 3000);