innerHTML riscrive un codice dentro un oggetto.
Se tu usi sempre lo stesso oggetto, il tuo for continua a loopare (brutto neologismo) fino a che finisce, e quindi alla fine vedri solo il colore finale.
Nel tuo caso potresti preparati una tabella (tag <table> ) con tutti i posti e poi inserire i colori che vuoi,
oppure il document.write potrebbe andare bene.
Probabilmente una successione di 1000 document.write in successione manda in crisi il browser, ma prova cosi`:
Attenzione ai colori che usi. I colori "web-safe" sono abbastanza pochi: ogni colore puo` avere circa 16 gradazioni.codice:var i=0; var k=0; var max=16; // fine loop function Genera3(i,k) { for(var j=0; j<max; j++) { document.write("<div class='box' style='background-color: rgb("+Col[i]+","+Col[k]+","+Col[j]+")'>& nbsp;</div>"); } } function Genera(i,k) { Genera3(i,k); k++; if(k>=max) { k=0; i++; if(i>=max) return false; } var next = "Genera("+i+","+k+")"; setTimeout(next, 500); // puoi abbassare un po' alla volta, se funziona }
Per l'accessibilita`, inoltre, i colori contigui devono essere sufficientemente separati in contrasto e luminosita`, con una formula che ora non ricordo a memoria, ma che posso cercare di recuperare, se serve.
Nota che la chiamta alla funzione Genera() deve essere fatta dal body, cosi`:
<body ...>
<div id="contenitore">
<script ...>Genera();</script>
</div>
...

Rispondi quotando