代码雨?

www.jswusn.com HTML 2025-01-03 09:56:32 13次浏览

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>代码雨</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            overflow: hidden;
        }

        h1 {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: #fff;
            font-size: 50px;
        }
    </style>
</head>

<body>

<h1>没啥卵用-纯装X</h1>

<script>
    // 创建一个canvas元素,并获取其上下文
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    // 设置canvas的宽高
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    // 将canvas添加到body中
    document.body.appendChild(canvas);
    // 设置字体大小
    var fontSize = 16;
    // 计算列数
    var columns = canvas.width / fontSize;
    // 创建一个数组,用于存储每一列的雨滴位置
    var drops = [];
    // 初始化每一列的雨滴位置
    for (var x = 0; x < columns; x++) {
        drops[x] = 1;
    }
    // 绘制代码雨需要的字母 从这里里面取字符
    var str = 'javascriptcoderain-xtqd';
    function draw() {
        // 绘制一个透明度为0.05的黑色矩形,用于清除上一帧的绘制
        ctx.fillStyle = 'rgba(0, 0, 0, 0.05)';
        // 绘制一个矩形,覆盖整个canvas
        ctx.fillRect(0, 0, canvas.width, canvas.height);
        // 设置字体颜色为绿色
        ctx.fillStyle = '#0F0';
        // 设置字体样式
        ctx.font = fontSize + 'px arial';
        // 遍历每一列的雨滴位置
        for (var i = 0; i < drops.length; i++) {
            // 随机选择一个字符
            var text = str[Math.floor(Math.random() * str.length)];
            // 绘制字符
            ctx.fillText(text, i * fontSize, drops[i] * fontSize);
            // 如果雨滴位置超过了canvas的高度,则重新开始
            if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
                drops[i] = 0;
            }
            // 雨滴位置向下移动
            drops[i]++;
        }
    }
    // 每隔33毫秒绘制一次
    setInterval(draw, 33);
</script>
</body>

</html>



技术分享

苏南名片

  • 联系人:吴经理
  • 电话:152-1887-1916
  • 邮箱:message@jswusn.com
  • 地址:江苏省苏州市相城区

热门文章

Copyright © 2018-2025 jswusn.com 版权所有

技术支持:苏州网站建设  苏ICP备18036849号