首页 > 系统相关 >代码雨的实现 linux or html

代码雨的实现 linux or html

时间:2023-11-24 11:04:21浏览次数:42  
标签:code 代码 random ctx parseInt html linux var Math



文章目录

  • 1、linux 代码雨的实现
  • 2、 html 文件实现


1、linux 代码雨的实现

执行
1) sudo apt-get install cmatrix
2)cmatrix

代码雨的实现 linux or  html_Math

效果:

代码雨的实现 linux or  html_linux_02

2、 html 文件实现

1)新建文件
test.html
2) 复制一下代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Code -by ZhenYu.Sha</title>
        <style type="text/css">
            html,body{width: 100%;height: 100%;}
            body{
                background: #000;
                overflow: hidden;
                margin: 0;
                padding: 0;
            }
        </style>
    </head>
    <body>
        <canvas id="cvs"></canvas>
        <script type="text/javascript">
            var cvs = document.getElementById("cvs"); 
            var ctx = cvs.getContext("2d");
            var cw = cvs.width = document.body.clientWidth;
            var ch = cvs.height = document.body.clientHeight; 
            //动画绘制对象
            var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
            var codeRainArr = []; //代码雨数组
            var cols = parseInt(cw/14); //代码雨列数
            var step = 16 ;    //步长,每一列内部数字之间的上下间隔
            ctx.font = "bold 26px microsoft yahei"; //声明字体,个人喜欢微软雅黑

function createColorCv() {
//画布基本颜色
ctx.fillStyle="#242424";
ctx.fillRect(0,0,cw,ch); 
}

            //创建代码雨
            function createCodeRain() {
                for (var n = 0; n < cols; n++) {
                    var col = []; 
                    //基础位置,为了列与列之间产生错位
                    var basePos = parseInt(Math.random()*300);
                    //随机速度 3~13之间
                    var speed = parseInt(Math.random()*10)+3;
                    //每组的x轴位置随机产生
                    var colx = parseInt(Math.random()*cw)

   //绿色随机
var rgbr= 0;
var rgbg= parseInt(Math.random()*255);
var rgbb= 0;
//ctx.fillStyle = "rgb("+r+','+g+','+b+")"

                    for (var i = 0; i < parseInt(ch/step)/2; i++) {
                        var code = {
                            x : colx, 
                            y : -(step*i)-basePos, 
                            speed : speed, 
//                            text : parseInt(Math.random()*10)%2 == 0 ? 0 : 1  //随机生成0或者1
                            text : ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","s","t","u","v","w","x","y","z"][parseInt(Math.random()*11)], //随机生成字母数组中的一个
color : "rgb("+rgbr+','+rgbg+','+rgbb+")"
                        }
                        col.push(code);  
                    }
                    codeRainArr.push(col);
                }
            }
            //代码雨下起来
            function codeRaining(){
                //把画布擦干净
                ctx.clearRect(0,0,cw,ch);
//创建有颜色的画布
//createColorCv();
                for (var n = 0; n < codeRainArr.length; n++) {
                    //取出列
                    col = codeRainArr[n];
                    //遍历列,画出该列的代码
                    for (var i = 0; i < col.length; i++) {
                        var code = col[i]; 
                        if(code.y > ch){ 
                            //如果超出下边界则重置到顶部
                            code.y = 0;
                        }else{
                            //匀速降落
                            code.y += code.speed;
                        }
                        //颜色也随机变化

                        //ctx.fillStyle = "hsl("+(parseInt(Math.random()*359)+1)+",30%,"+(50-i*2)+"%)"; 

//绿色逐渐变浅

//ctx.fillStyle = "hsl(123,30%,"+(30-i*2)+"%)"; 

//绿色随机
//var r= 0;
//var g= parseInt(Math.random()*255) + 3;
//var b= 0;
//ctx.fillStyle = "rgb("+r+','+g+','+b+")"
ctx.fillStyle = code.color;
                        //把代码画出来
                        ctx.fillText(code.text,code.x,code.y);
                    }
                }
                requestAnimationFrame(codeRaining);
            }

            //创建代码雨
            createCodeRain();
            //开始下雨吧 GO>>
            requestAnimationFrame(codeRaining);
        </script>
    </body>
</html>

3)双击 新建 网页文件

效果:

代码雨的实现 linux or  html_html_03

文件参考:
“代码雨”纯HTML源码实现及效果


标签:code,代码,random,ctx,parseInt,html,linux,var,Math
From: https://blog.51cto.com/u_15866638/8546117

相关文章

  • JVS低代码表单组件:单选与多选组件全解析
    在现代化的数字界面中,组件是不可或缺的一部分。无论是在问卷调查、投票,还是在购物车等场景中,单选和多选组件都扮演着重要角色。它们让用户能够在一系列选项中做出决定,从而提高交互的效率和用户体验。JVS低代码表单组件中提供了单选与多选的组件,接下来我们结合场景详细介绍单选与多......
  • 代码动态添加组件类型、大小 、方位 (addView)
    文章目录1、功能介绍2、代码结构3、activity_main.xml文件4、功能代码1、功能介绍在代码里动态添加我们需要的组件,并确定位置大小等格式2、代码结构3、activity_main.xml文件定义两个按钮点击添加不同的组件<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns......
  • 基于html5+javascript技术开发的房贷利率计算器,买房的码农们戳进来
    房贷计算器是一款专为购房者设计的实用工具应用,其主要功能是帮助用户详细计算房贷的还款金额、利息以及还款计划等。通过这款软件,用户可以更加便捷地了解到自己的还款情况和计划,从而更好地规划自己的财务。下面将对房贷计算器进行详细的介绍。体验地址房贷计算器体验地址关键代码<t......
  • DevExpress中文教程 - 如何在macOS和Linux (CTP)上创建、修改报表(下)
    DevExpressReporting是.NETFramework下功能完善的报表平台,它附带了易于使用的VisualStudio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。DevExpressReports—跨平台报表组件,允许用户在针对任何基于.NET平台的应用程序中生成......
  • 【代码可视化实践】代码变更影响分析
    1.前言笔者前文“浅析代码可视化”中讲述了代码可视化的基本实现原理,并给出了一些业界的应用场景。由于涉及原理和技术范围较广,以笔者能力难以做到面面俱到,为了减少信息传递偏差,便给出了一些信息来源供读者深入阅读。不过针对文中提到应用场景中的一些小的功能点,可以拿出来详尽的......
  • html大体框架
    html框架<!--这一句话声明这是h5版本的--><!DOCTYPEhtml><!--这一句把lang="en"去掉要不然默认语言为英文--><htmllang="en"><head><!--声明编码格式是UTF-8--><metacharset="UTF-8"><!--设置网站的关键字:方便外部......
  • Linux基础
    2.6.32-3.3是linux内核安全较高的版本 NTFS与FAT32的区别NTFS单个文件不能超过2个TFAT单个文件不能超过4个G,如U盘EXFAT:支持linux,windows,macos,跨系统兼容性好 破解密码开机界面倒数321时按E再按E 选择第二个按e空格s回车再次来到该界面输b随后......
  • 在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析|附代码数据
    原文链接:http://tecdat.cn/?p=9024原文出处:拓端数据部落公众号  最近我们被要求撰写关于GAM的研究报告,包括一些图形和统计输出。用GAM进行建模时间序列我已经准备了一个文件,其中包含四个用电时间序列来进行分析。数据操作将由data.table程序包完成。将提及的智能电表数据......
  • Linux学习总结
     编辑文件(vi、vim)vi文件名//打开需要编辑的文件--进入后,操作界面有三种模式:命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode)命令模式-刚进入文件就是命令模式,通过方向键控制光标位置,-使用命令"dd"删除当前整行-使用命令"/字段"进行查找-按"i......
  • 四、Linux帮助使用
    四、Linux帮助使用1、Tab键的作用当所输入的关键字具有唯一性时,一次Tab则自动补齐所输入的关键字不具有唯一性,则系统会列出所有该关键字开头的内容补齐命令补齐参数2、历史记录history:查看所有历史记录historyN:列出最近N条历史记录!N:调用第N条历史记录!st......