var iNoOfStories = Math.random()*100+12; var aLayoutSizes = [9, 7, 5, 3, 1]; var numberOfStories = 1; var iX = 0; var iY = 0; var sHTML = ""; var sCSS = ""; var iCount = 0; var iDimension; $(function() { function generateGrid() { iNoOfStories = parseInt(Math.random()*100+12); aLayoutSizes = [9, 7, 5, 3, 1]; numberOfStories = 1; iX = 0; iY = 0; sHTML = ""; sCSS = ""; iCount = 0; for (var i = 1; i < iNoOfStories; i++) { for (var stories = 0; stories < numberOfStories; stories++) { iCount++; sHTML += "
" + iCount + "
" } } $("#container").html(sHTML); iDimension = parseInt(Math.random()*150+55); $("#info").html("Placing "+iNoOfStories+" bricks, each has the dimension: "+iDimension+" x "+iDimension); } function move() { $("#container").css("left", -iDimension); var css = ""; var iCount = 0; for (var i = 1; i < iNoOfStories; i++) { var currLeft = (i - 1) * iDimension; var iDir = -1; for (var stories = 0; stories < numberOfStories; stories++) { iCount++; iDir = (Math.floor(stories / i)) var maxLeft = (Math.floor(numberOfStories / i) * iDimension); var relLeft = currLeft + (maxLeft - (Math.floor(stories / i) * iDimension)); var relTop = (stories % i) * iDimension; if (iDir !== 0) { var temp = relLeft; relLeft = relTop + iDimension; relTop = temp; } var selector = "#container .story:nth-child(" + iCount + ")"; var rot = parseInt(Math.random()*3)*360; var red = parseInt(Math.random()*255); var green = parseInt(Math.random()*255); var blue = parseInt(Math.random()*255); var alpha = Math.random()*.5+.5; var zIndex = parseInt(Math.random()*500)+1; var oVal = { "z-index":zIndex, "transition-delay": Math.random()*3+"s", "transition-duration": Math.random()*4+1+"s", "left": relLeft + "px", "background":"rgba("+red+","+green+","+blue+","+alpha+")", "top": relTop + "px", "width": iDimension+"px", "height": iDimension+"px", "line-height": iDimension+"px", "transform":"rotate("+rot+"deg)" } var value = "left" + relLeft + "px; " + "top " + relTop + "px "; $(selector).css(oVal); css += selector + " {" + value + "}\n"; } numberOfStories += 2; } } function reset() { $(".story").css({"transition-duration": 0, "transition-delay":0, left: "-100px", top: "-100px"}); generateGrid(); setTimeout(function() { move(); }, 1000); } reset(); $("#reset").on("click", function() { reset(); }) })