直接上代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>MGT-404</title>
<style>
* {
margin: 0;
padding: 0;
}
body {
background: black;
}
canvas {
display: block;
}
</style>
</head>
<body>
<canvas id="ad"></canvas>
<script>
//获取画布对象
var ad = document.getElementById("ad");
//设置画布展示为2d
var ctx = ad.getContext("2d");
//设置canvas的宽度和高度
ad.height = window.innerHeight;
ad.width = window.innerWidth;
//展示的文字
var chinese = randomChars(num1);
//字符串转为数组
chinese = chinese.split("");
//设置字体大小
var font_size = 10;
//计算列
var columns = ad.width / font_size;
//记录每列文字的y轴坐标
var drops = [];
//给每一个文字初始化一个起始点的位置
for (var x = 0; x < columns; x++) drops[x] = 1;
//绘画的函数
function draw() {
//布满全屏的黑色遮罩层
ctx.fillStyle = "rgba(0, 0, 0, 0.05)";
ctx.fillRect(0, 0, ad.width, ad.height);
ctx.fillStyle = "#0F0";
//设置字体样式
ctx.font = font_size + "px arial";
//写入画布中
for (var i = 0; i < drops.length; i++) {
//随机生成文字
var text = chinese[Math.floor(Math.random() * chinese.length)];
ctx.fillText(text, i * font_size, drops[i] * font_size);
//如果文字的Y轴坐标大于画布的高度,1/100*colunms概率将该文字的Y轴坐标重置为0
if (drops[i] * font_size > ad.height && Math.random() > 0.975)
drops[i] = 0;
//文字Y轴坐标+1
drops[i]++;
}
}
//流动速度
setInterval(draw, 50);
</script>
</body>
</html>