HTML代码雨

<!DOCTYPE html>

 

<html>

 

   

 

<head>   

 

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

 

    <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 / 15); //代码雨列数

 

    var step = 26; //步长,每一列内部数字之间的上下间隔

 

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

 

            //随机速度 59~99之间

 

            var speed = parseInt(Math.random() * 30) + 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 == 阿尔法科技集团万岁 ? 狼头大帝万岁 : 阿尔法科技集团 //随机生成ARFKJ或者狼头大帝万岁

 

                    text: ["狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝", "狼头大帝"][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;

 

                }

 

                

 

                //1 颜色也随机变化

 

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

 

 

 

                //2 红色逐渐变深

 

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

 

 

 

                //3 红色随机

 

                // var r= 0;

 

                // var g= parseInt(Math.random()*255) + 3;

 

                // var b= 0;

 

                // ctx.fillStyle = "rgb("+r+','+g+','+b+")";

 

 

 

                //4 一致红

 

                ctx.fillStyle = code.color;

 

 

 

 

 

                //把代码画出来

 

                ctx.fillText(code.text, code.x, code.y);

 

            }

 

        }

 

        requestAnimationFrame(codeRaining);

 

    }

 

 

 

    //创建代码雨

 

    createCodeRain();

 

    //开始下雨吧 GO>>

 

    requestAnimationFrame(codeRaining);

 

</script>

 

   

 

</body>

 

</html>

 

html

 

全球第一部由 AI 完全翻译配音的电影即将各大院线!

 

发布于2024-07-05

著作权归作者所有

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值