Canvas experiment
Try fullscreen in full page view :)
A Pen by Siddharth Parmar on CodePen.
Canvas experiment
Try fullscreen in full page view :)
A Pen by Siddharth Parmar on CodePen.
window.requestAnimFrame = (function() { | |
return window.requestAnimationFrame || | |
window.webkitRequestAnimationFrame || | |
window.mozRequestAnimationFrame || | |
window.oRequestAnimationFrame || | |
window.msRequestAnimationFrame || | |
function(callback) { | |
window.setTimeout(callback, 1000 / 60); | |
}; | |
})(); | |
var c = document.createElement("canvas"); | |
document.body.appendChild(c); | |
function getContext() { | |
ctx = c.getContext("2d"); | |
c.width = window.innerWidth; | |
c.height = window.innerHeight; | |
var cubes = [], | |
//more spacing less squares | |
spacing = 40, | |
xPos = 0, | |
n = window.innerWidth / spacing, | |
tSpeedFactor = [.2, .4, .6, .8, 1], | |
i; | |
var colors = ['#556270', '#4ECDC4', '#C7F464', '#FF6B6B', '#C44D58']; | |
for (i = 0; i < n; i++) { | |
cubes.push({ | |
x: xPos, | |
y: Math.round(Math.random() * c.height), | |
width: Math.round(Math.random() * 5) * 10, | |
tSpeed: tSpeedFactor[Math.floor(Math.random() * tSpeedFactor.length)], | |
color: colors[Math.floor(Math.random() * colors.length)], | |
angle: 0, | |
upDownFactor: (Math.random() >= .5) ? 1 : -1 | |
}); | |
xPos += spacing; | |
} | |
function draw() { | |
var i; | |
ctx.clearRect(0, 0, c.width, c.height); | |
for (i = 0; i < n; i++) { | |
ctx.save(); | |
ctx.translate(cubes[i].x + cubes[i].width / 2, cubes[i].y + cubes[i].width / 2); | |
ctx.rotate(cubes[i].angle); | |
ctx.fillStyle = cubes[i].color; | |
ctx.globalAlpha = .75; | |
ctx.fillRect(-cubes[i].width / 2, -cubes[i].width / 2, cubes[i].width, cubes[i].width); | |
ctx.restore(); | |
cubes[i].y = cubes[i].y + cubes[i].tSpeed * cubes[i].upDownFactor; | |
cubes[i].angle += Math.PI / 360; | |
if (cubes[i].upDownFactor === -1) { | |
if (cubes[i].y + cubes[i].width < 0) { | |
cubes[i].y = c.height; | |
} | |
} else if (cubes[i].upDownFactor === 1) { | |
if (cubes[i].y >= c.height) { | |
cubes[i].y = -cubes[i].width; | |
} | |
} | |
} | |
window.requestAnimationFrame(draw); | |
} | |
draw(); | |
}; | |
getContext(); | |
window.addEventListener('resize', getContext); |
<script src="https://cdn.rawgit.com/Siddharth11/gradStop.js/master/gradstop.js"></script> |
canvas { | |
position: fixed; | |
/* Force Hardware Acceleration */ | |
transform: translate3d(0, 0, 0); | |
} |