效果

思路
<html lang="en">
<head>
<meta charset="UTF-8">
<title>黑客帝国</title>
<style type="text/css">
* {
margin: 0 auto;
padding: 0 auto;
}
body {
background: black;
overflow: hidden;
}
h1 {
text-align: center;
color: green;
text-transform: uppercase;
}
</style>
</head>
<body>
<h1>the matrix</h1>
<canvas id="matrix"></canvas>
<script type="text/javascript">
var matrix = document.getElementById("matrix");
var context = matrix.getContext("2d");
matrix.height = window.innerHeight;
matrix.width = window.innerWidth;
var drop = [];
var font_size = 20;
var columns = matrix.width / font_size;
for (var i = 0; i < columns; i++)
drop[i] = 1;
function drawMatrix() {
context.fillStyle = "rgba(0, 0, 0, 0.1)";
context.fillRect(0, 0, matrix.width, matrix.height);
context.fillStyle = "green";
context.font = font_size + "px";
for (var i = 0; i < columns; i++) {
context.fillText(Math.floor(Math.random() * 2), i * font_size, drop[i] * font_size);
if (drop[i] * font_size > (matrix.height * 2 / 3) && Math.random() > 0.85)
drop[i] = 0;
drop[i]++;
}
}
setInterval(drawMatrix, 50);
</script>
</body>
</html>