当前位置: 首页 > news >正文

html+css+js仿黑客帝国代码雨

点赞❤️+关注😍+收藏⭐️ 互粉必回🙏🙏🙏

图示(只截取了一部分)代码在图片后面

3d5dc71f7202486fb65af3ba6a76d25c.jpg

 源代码

<!doctype html>

<html>

    <head>

        <meta charset="gbk-2312" />

        <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");

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

            //获取屏幕对象

            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 = "qwertyuiopasdfghjklzxcvbnm1234567890!@#¥%……&*()-=+";

            //往数组里面添加 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]++;

                }

                    

            }

            

            function toggleFullScreen() {

                if (!document.fullscreenElement && // alternative standard method

                    !document.mozFullScreenElement && !document.webkitFullscreenElement) {// current working methods

                    if (document.documentElement.requestFullscreen) {

                        document.documentElement.requestFullscreen();

                    } else if (document.documentElement.mozRequestFullScreen) {

                        document.documentElement.mozRequestFullScreen();

                    } else if (document.documentElement.webkitRequestFullscreen) {

                        document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);

                    }

                } else {

                    if (document.cancelFullScreen) {

                        document.cancelFullScreen();

                    } else if (document.mozCancelFullScreen) {

                        document.mozCancelFullScreen();

                    } else if (document.webkitCancelFullScreen) {

                        document.webkitCancelFullScreen();

                    }

                }

            }

            

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

            setInterval(drawString,30);

        </script>

        

    </body>

</html>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 应对高并发请求:服务器性能压力的解决方案
  • TLS与SSL的区别
  • 手机下载APP (uniapp/vue)
  • 矩阵分解及其在机器学习中的应用
  • 基于SpringBoot+Hadoop+python的物品租赁系统(带1w+文档)
  • Pinia
  • jdk中自带的并发类
  • Bash ——shell
  • 从零开始实现大语言模型(三):Token Embedding与位置编码
  • 香蕉派BPI-Wifi6迷你路由器公开发售
  • 微积分-导数6(隐式导数)
  • grid布局下的展开/收缩过渡效果【vue/已验证可正常运行】
  • free第一次成功,第二次失败
  • 物联网应用,了解一点 WWAN全球网络标准
  • Python8:线程和进程
  • 收藏网友的 源程序下载网
  • [笔记] php常见简单功能及函数
  • 「译」Node.js Streams 基础
  • 【译】理解JavaScript:new 关键字
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Angular Elements 及其运作原理
  • css系列之关于字体的事
  • DataBase in Android
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • HTTP 简介
  • JavaScript DOM 10 - 滚动
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • leetcode386. Lexicographical Numbers
  • mysql常用命令汇总
  • orm2 中文文档 3.1 模型属性
  • php面试题 汇集2
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 使用 Docker 部署 Spring Boot项目
  • 手写双向链表LinkedList的几个常用功能
  • 通过npm或yarn自动生成vue组件
  • 通过几道题目学习二叉搜索树
  • 想使用 MongoDB ,你应该了解这8个方面!
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • # 职场生活之道:善于团结
  • #etcd#安装时出错
  • #NOIP 2014# day.2 T2 寻找道路
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (MATLAB)第五章-矩阵运算
  • (笔试题)合法字符串
  • (区间dp) (经典例题) 石子合并
  • (一)u-boot-nand.bin的下载
  • (原)Matlab的svmtrain和svmclassify
  • .gitignore文件_Git:.gitignore
  • .net core 外观者设计模式 实现,多种支付选择
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Remoting学习笔记(三)信道
  • .Net Winform开发笔记(一)