前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS实现炫酷的黑客帝国效果

JS实现炫酷的黑客帝国效果

原创
作者头像
Ashen
修改2020-04-29 14:30:07
3.1K0
修改2020-04-29 14:30:07
举报
文章被收录于专栏:Ashenの前端技术Ashenの前端技术

今天正好在阿里云导出数据库的时候看到了这个效果,就把代码扒下来了~

以下为完整代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    body{
      width: 100vw;
      height: 100vh;
    }
  </style>
</head>
<body>
  <canvas id="my_canvas"></canvas>
</body>
</html>
	<script type="text/javascript">
		var c = document.getElementById("my_canvas");
		var ctx = c.getContext("2d");

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

		var txts = "01";
		txts = txts.split("");

		var font_size = 16;
		var columns = c.width/font_size;
		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, c.width, c.height);

        ctx.fillStyle = "#0F0"; //green text
        ctx.font = font_size + "px arial";
        for(var i = 0; i < drops.length; i++)
      {
        var text = txts[Math.floor(Math.random()*txts.length)];
        ctx.fillText(text, i*font_size, drops[i]*font_size);
        if(drops[i]*font_size > c.height || Math.random() > 0.95)
        drops[i] = 0;
        drops[i]++;
      }
		}
    setInterval(draw, 33);
  </script>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档