368d6fafea
Code backup
78 lines
1.8 KiB
JavaScript
78 lines
1.8 KiB
JavaScript
var canvas = document.getElementById( 'canvas' ),
|
|
ctx = canvas.getContext( '2d' ),
|
|
canvas2 = document.getElementById( 'canvas2' ),
|
|
ctx2 = canvas2.getContext( '2d' ),
|
|
// full screen dimensions
|
|
cw = window.innerWidth,
|
|
ch = window.innerHeight,
|
|
charArr = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'],
|
|
maxCharCount = 100,
|
|
fallingCharArr = [],
|
|
fontSize = 10,
|
|
maxColums = cw/(fontSize);
|
|
canvas.width = canvas2.width = cw;
|
|
canvas.height = canvas2.height = ch;
|
|
|
|
|
|
function randomInt( min, max ) {
|
|
return Math.floor(Math.random() * ( max - min ) + min);
|
|
}
|
|
|
|
function randomFloat( min, max ) {
|
|
return Math.random() * ( max - min ) + min;
|
|
}
|
|
|
|
function Point(x,y)
|
|
{
|
|
this.x = x;
|
|
this.y = y;
|
|
}
|
|
|
|
Point.prototype.draw = function(ctx){
|
|
|
|
this.value = charArr[randomInt(0,charArr.length-1)].toUpperCase();
|
|
this.speed = randomFloat(1,5);
|
|
|
|
|
|
ctx2.fillStyle = "rgba(255,255,255,0.8)";
|
|
ctx2.font = fontSize+"px san-serif";
|
|
ctx2.fillText(this.value,this.x,this.y);
|
|
|
|
ctx.fillStyle = "#0F0";
|
|
ctx.font = fontSize+"px san-serif";
|
|
ctx.fillText(this.value,this.x,this.y);
|
|
|
|
|
|
|
|
this.y += this.speed;
|
|
if(this.y > ch)
|
|
{
|
|
this.y = randomFloat(-100,0);
|
|
this.speed = randomFloat(2,5);
|
|
}
|
|
}
|
|
|
|
for(var i = 0; i < maxColums ; i++) {
|
|
fallingCharArr.push(new Point(i*fontSize,randomFloat(-500,0)));
|
|
}
|
|
|
|
|
|
var update = function()
|
|
{
|
|
|
|
ctx.fillStyle = "rgba(0,0,0,0.05)";
|
|
ctx.fillRect(0,0,cw,ch);
|
|
|
|
ctx2.clearRect(0,0,cw,ch);
|
|
|
|
var i = fallingCharArr.length;
|
|
|
|
while (i--) {
|
|
fallingCharArr[i].draw(ctx);
|
|
var v = fallingCharArr[i];
|
|
}
|
|
|
|
requestAnimationFrame(update);
|
|
}
|
|
|
|
update(); |