黑客面板特效文字矩阵

黑客面板特效文字矩阵

转载自木鱼_Max,原文链接:https://blog.csdn.net/weixin_38785697/article/details/79069352,黑客文字矩阵特效,下面展示代码。

<!DOCTYPE html>
<html lang="en">
<head>
  <title>黑客面板特效之文字矩阵</title>
  <meta name="generator" content="editplus">
  <meta name="author" content="">
  <meta name="keywords" content="">
  <meta name="description" content="">
 <!-- <link href="css/index.css" rel="stylesheet" type="text/css"> -->
 </head>
 
 <body>
 <!--画板-->
	<canvas id="tie"></canvas>
 </body>
<script>
 //定制要打印的文字数组
   var str=[];
    //str=prompt("请输入你要显示的文字矩阵,默认为01:","");
    str = null;
	if(str!=null && str!=""){
		str=str;
	}else{
		str="0101010010101011111100001101010101010"	;//如果用户未输入就让文字为此数组
	}
	//console.log(str);
 	//<!--取得画板工具-->
 	var canvas=document.getElementById("tie");
	//取得画板的合法值
	var ctx=canvas.getContext("2d");
	var s=window.screen;
	var w=s.width;//取得屏幕的宽度
	var h=s.height;//取得屏幕的高度
	canvas.width=w;//让画板的高度和宽度都为屏幕的高度和宽度
	canvas.height=h;
	//设置文字的字体大小
	var fontSize=18;
	//计算屏幕一行很放下多少个文字
	var clos=Math.floor(w/fontSize);
	//console.log(clos);
	//设置文字的位置和文字的样式
	ctx.font="600 "+fontSize+"px 微软雅黑";//600为字体加粗的大小,记得600 后面要加空格
	//申明一个数组
	var drops=[];
	//计算每一个文字所谓坐标 存储y轴的坐标
	for(var i=0;i<clos;i++){
		drops.push(0);
		}
	//随机颜色函数
	function getRandomColor() 
	{
		var c = '#'; 
		var cArray = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']; //准备好要用的颜色拼接值
		for(var i = 0; i < 6;i++) //因为要用到6个数值 具体看自定义颜色面板
		{
			var cIndex = Math.round(Math.random()*15); //数组长度为16但数组下表从0开始故为15
			c += cArray[cIndex]; //拼接颜色值
		}
		return c; 
	} 
	function draw(){
		ctx.fillStyle="rgba(0,0,0,0.05)";//设置背景颜色和透明度
		ctx.fillRect(0,0,w,h);
		ctx.fillStyle=getRandomColor();
		for(var i=0;i<clos;i++){
			var y=drops[i]*fontSize;//也让y轴方向也向下掉一个文字的距离
			//Math.radom() 是0-1之间的数值
			//设置文字出发时间随机 str[Math.floor(Math.random()*str.length)] 让数组里面的文字索引随机出现
			ctx.fillText(str[Math.floor(Math.random()*str.length)],i*fontSize,y);
			if(y>=canvas.height && Math.random()>0.99){
				drops[i]=0;
			}
			drops[i]++;//让数组里面的值每次加一,用于上面的y轴下掉
		}
	}
	setInterval(draw,40); //设置40毫秒定时器,用来调用文字绘制方法
 </script>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值