炫酷的Html效果-模仿"黑客帝国"中的代码雨

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011966339/article/details/90056779

效果如图

复制下面的代码,保存为.html,双击就可以查看效果,可以按F11设置为全屏模式体验。

<!DOCTYPE html>
<html>
<head>
	<title>黑客帝国效果</title>
</head>

<body>
	<canvas id="canvas"></canvas>
	<style type="text/css">
body{margin: 0; padding: 0; overflow: hidden;}
</style>
<script type="text/javascript">
var canvas = document.getElementById('canvas');
		var ctx = canvas.getContext('2d');


		canvas.height = window.innerHeight;
		canvas.width = window.innerWidth;

		var texts = '0123456789'.split('');

		var fontSize = 16;
		var columns = canvas.width/fontSize;
		// 用于计算输出文字时坐标,所以长度即为列数
		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, canvas.width, canvas.height);
			//文字颜色
			ctx.fillStyle = '#0F0';
			ctx.font = fontSize + 'px arial';
			//逐行输出文字
			for(var i = 0; i < drops.length; i++){
				var text = texts[Math.floor(Math.random()*texts.length)];
				ctx.fillText(text, i*fontSize, drops[i]*fontSize);

				if(drops[i]*fontSize > canvas.height || Math.random() > 0.95){
					drops[i] = 0;
				}

				drops[i]++;
			}
		}

		setInterval(draw, 33);
</script>
</body>

猜你喜欢

转载自blog.csdn.net/u011966339/article/details/90056779