JSFiddle - React, Tailwind, and code Playground
HTML
<div><div></div></div>
CSS
.block { width: 30px; height: 30px; display: inline-block; }
JavaScript
function Blocks() {
var Size = 0;
var _self = this;
this.setSize = function(inputSize) {
Size = inputSize;
};
this.goCrazy = function() {
var Block = _self.randBlock();
Block.style.background = _self.randColor();
var t = setTimeout(function () { _self.goCrazy() }, 100);
};
this.createEnvironment = function() {
var Block, prevBlock, i;
for (i = 0; i < Size; i++) {
Block = document.createElement('div');
Block.className = 'block';
Block.id = i;
prevBlock = document.getElementsByTagName('div')[i];
prevBlock.parentNode.insertBefore(Block, prevBlock);
}
};
this.randBlock = function() {
return document.getElementsByTagName('div')[Math.floor(Math.random() * Size)];
};
this.randColor = function() {
var Chars = '0123456789ABCDEF'.split('');
var randColor = '#';
for (var i = 0; i < 6; i++) {
randColor += Chars[Math.floor(Math.random() * Chars.length)];
}
return randColor;
};
}
var object = new Blocks();
object.setSize(100);
object.createEnvironment();
object.goCrazy();