<canvas id="canvas" style="background:black;"></canvas>
html,body {
width:100%;
height:100%;
}
body {
background:#000;
overflow:hidden;
margin:0;
padding:0;
}
(function() {
var lastTime = 0;
var vendors = ['ms', 'moz', 'webkit', 'o'];
for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
}
if (!window.requestAnimationFrame) window.requestAnimationFrame = function(callback, element) {
var currTime = new Date().getTime();
var timeToCall = Math.max(0, 16 - (currTime - lastTime));
var id = window.setTimeout(function() {
callback(currTime + timeToCall);
}, timeToCall);
lastTime = currTime + timeToCall;
return id;
};
if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function(id) {
clearTimeout(id);
};
}());
window.onload = function() {
var canvas = document.getElementById('canvas'),
ctx = canvas.getContext('2d'),
w, h;
w = canvas.width = window.innerWidth;
h = canvas.height = window.innerHeight;
var wordColor = "green",
words = ",./;'\[]QWERTYUIOP{}ASDFGHJHJKL:ZXCVBBNM<>?がガぎギぐグげゲごゴきゃキャきゅキュきょキョりゃリャゅリュりょリョ",
wordsArr = words.split(''),
font_size = 18,
clumns = parseInt(w / font_size, 10),
s = [];
for (var i = 0; i < clumns; i++) {
s[i] = Math.floor(Math.random() * h);
}
function draw(time) {
ctx.save();
ctx.translate(w, 0);
ctx.scale(-1, 1);
ctx.fillStyle = wordColor;
ctx.font = font_size + "px arial";
for (var i = 0; i < s.length; i++) {
var text = wordsArr[Math.floor(Math.random() * wordsArr.length)];
ctx.fillText(text, i * font_size, s[i] * font_size);
if (s[i] * font_size > h && Math.random() > 0.95) {
s[i] = 0;
}
s[i]++;
}
ctx.restore();
}
var clearColor = 'rgba(0, 0, 0, .1)',
lt = 0,
speed = 50;
function drawFrame(time) {
if (time - lt > speed) {
lt = time;
ctx.fillStyle = clearColor;
ctx.fillRect(0, 0, w, h);
draw();
}
window.requestAnimationFrame(drawFrame, canvas);
}
window.requestAnimationFrame(drawFrame, canvas);
function resize() {
w = canvas.width = window.innerWidth;
h = canvas.height = window.innerHeight;
}
canvas.addEventListener("resize", resize);
document.addEventListener('keyup', function(event) {
var code = event.keyCode || event.which;
if (code == 122) {
resize();
}
}, false);
}