JavaScript技术实现黑客帝国

<!doctype html>

<html>

    <head>

        <meta charset="utf-8" />

        <title>流星雨</title>

        <meta name="keywords" content="关键词,关键字">

        <meta name="description" content="描述信息">

        <style>

            body {

                margin: 0;

                overflow: hidden;

            }

        </style>

    </head>

    <body>

        <!--

            <canvas>画布 画板 画画的本子

        -->

        <canvas width=400 height=400 style="background:#000000;" id="canvas"></canvas>

        <!--

            javascript

            画笔

        -->

        <script>

                   

            //获取画板

            //doccument 当前文档

            //getElement 获取一个标签

            //ById 通过Id名称的方式

            //var 声明一片空间

            //var canvas 声明一片空间的名字叫做canvas

            var canvas = document.getElementById("canvas");

            //获取画板权限 上下文

            var ctx = canvas.getContext("2d");

            //让画板的大小等于屏幕的大小

            /*

                思路:

                    1.获取屏幕对象

                    2.获取屏幕的尺寸

                    3.屏幕的尺寸赋值给画板

            */

            //获取屏幕对象

            var s = window.screen;

            //获取屏幕的宽度和高度

            var w = s.width;

            var h = s.height;

            //设置画板的大小

            canvas.width = w;

            canvas.height = h;

            //设置文字大小

            var fontSize = 14;

            //计算一行有多少个文字 取整数 向下取整

            var clos = Math.floor(w/fontSize);

            //思考每一个字的坐标

            //创建数组把clos 个 0 (y坐标存储起来)

            var drops = [];

            var str = "qwertyuiopasdfghjklzxcvbnm";//这里修改跳出的东西

            //往数组里面添加 clos 个 0

            for(var i = 0;i<clos;i++) {

                drops.push(0);

            }

            //绘制文字

            function drawString() {

                //给矩形设置填充色

                ctx.fillStyle="rgba(0,0,0,0.05)"

                //绘制一个矩形

                ctx.fillRect(0,0,w,h);

                //添加文字样式

                ctx.font = "600 "+fontSize+"px 微软雅黑";

                //设置文字颜色

                ctx.fillStyle = "#00ff00";

                for(var i = 0;i<clos;i++) {

                    //x坐标

                    var x = i*fontSize;

                    //y坐标

                    var y = drops[i]*fontSize;

                    //设置绘制文字

                    ctx.fillText(str[Math.floor(Math.random()*str.length)],x,y);

                    if(y>h&&Math.random()>0.99){

                        drops[i] = 0;

                    }

                    drops[i]++;

                }

                   

            }

            //定义一个定时器,每隔30毫秒执行一次

            setInterval(drawString,30);

        </script>

    </body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋叶00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值