-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
109 lines (84 loc) · 3.02 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<html>
<head>
<style>
/*basic reset */
*{
margin: 0;
padding: 0;
}
body {background: black;}
canvas {display:block;}
</style>
</head>
<body>
<canvas id="c"></canvas>
<script>
// geting canvas by id c
var c = document.getElementById("c");
var ctx = c.getContext("2d");
//making the canvas full screen
c.height = window.innerHeight;
c.width = window.innerWidth;
//chinese characters - taken from the unicode charset
var matrix = "AホケBCスDEF:・.\"=*ユラ+-<>GHIJカKLヒMNOハミーウナモニサツオリアメエキセネタヌヘPQRワSシTUVマWXYZ123ム4567テ89";
//converting the string into an array of single characters
matrix = matrix.split("");
var font_size = 12;
var columns = c.width/font_size; //number of columns for the rain
//an array of drops - one per column
var drops = [];
//x below is the x coordinate
//1 = y co-ordinate of the drop(same for every drop initially)
for(var x = 0; x < columns; x++)
drops[x] = 1;
var once = false;
var myTimer;
//drawing the characters
function draw()
{
//Black BG for the canvas
//translucent BG to show trail
ctx.fillStyle = "rgba(0, 0, 0, 0.04)";
ctx.fillRect(0, 0, c.width, c.height);
if(once == false)
{
ctx.fillStyle = "#000";
}
else
{
ctx.fillStyle ="#0F0";
}
ctx.font = font_size + "px arial";
for(var i = 0; i < drops.length; i++)
{
var text = matrix[Math.floor(Math.random()*matrix.length)];
//x = i*font_size, y = value of drops[i]*font_size
ctx.fillText(text, i*font_size, drops[i]*font_size);
if(drops[i]*font_size > c.height && Math.random() > 0.975)
{
drops[i] = 0;
if(once === false)
{
clearInterval(myTimer);
myTimer = setInterval(draw, 60);
}
once = true;
}
drops[i]++;
}
}
myTimer = setInterval(draw, 1);
</script>
</body>
</html>
<!--
if(once == true && i < columns)
{
ctx.fillStyle = "#fff";
}
else
{
ctx.fillStyle = "#0F0";
console.log(columns + " " + i);
}
-->