首页 > 其他分享 >代码雨

代码雨

时间:2023-11-01 11:22:34浏览次数:29  
标签:canvas 代码 ctx arr item var Math

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            padding: 0;
            margin: 0;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <canvas id="canvas"></canvas>
    <script src="./code_rain.js"></script>
</body>
</html>
var canvas = document.querySelector('canvas');
console.log(canvas);
var ctx = canvas.getContext('2d');
canvas.width = screen.availWidth;
canvas.height = screen.availHeight;
var str = 'QWERTYUIOPASDFGHJKLZXCVBNM1234567890'.split('');
var arr = Array(Math.ceil(canvas.width / 10)).fill(0);
console.log(arr);
var rain = function () {
    ctx.fillStyle = 'rgba(0,0,0,0.05)';
    ctx.fillRect(0, 0, canvas.width, canvas.height);
    ctx.fillStyle = '#0f0';
    arr.forEach(function (item, index) {
        console.log(item, index);
        ctx.fillText(str[Math.floor(Math.random() * str.length)], index * 10, item + 10); //填充文字,x轴位置,y轴位置
        arr[index] = item > canvas.height || item > 10000 * Math.random() ? 0 : item + 10;
    });
};
setInterval(rain, 60);

效果(真实效果为动态):

 

标签:canvas,代码,ctx,arr,item,var,Math
From: https://www.cnblogs.com/zhaofen/p/17802610.html

相关文章

  • YzmCMS代码审计
    YzmCMS代码审计代码审计#CMS0x01通读index.php里面有很多的define,用这个代码运行下foreach(get_defined_constants(true)['user']as$k=>$v){echo$k.'---'.$v."\r\n";}APP_DEBUG---URL_MODEL---3YZMPHP_PATH---x:\cms\yzmcms-master\I......
  • 前端面试题之代码输出(十七)
    书接之前代码输出题目,异步&事件循环前端面试题之代码输出前端面试题之代码输出二前端面试题之代码输出三前端面试题之代码输出四前端面试题之代码输出五前端面试题之代码输出六前端面试题之代码输出七前端面试题之代码输出八前端面试题之代码输出九前端面试题之代码输出十前端面试题......
  • Linux时间校准、时间同步(ntpdate及C代码NTP客户端代码校准示例)
    背景机器每次机启后时间就会出现异常,因为机器无法访问外网,只能访问局域网的ntp服务,所以需要保证局域网内部有ntp服务,如何安装ntp服务,参考Ubuntu20.04Ntp服务安装及验证。网络时间协议NetworkTimeProtocol(NTP)是一种确保时钟保持准确的方法。如果可以访问互联网,只需安装ntp......
  • 代码
    `#include <stdio.h>include<stdlib.h>include<string.h>include<sys/types.h>include<sys/wait.h>include<unistd.h>include <signal.h>define MAXARGS 20define ARGLEN 100char*makestring(cha......
  • Ardour 8.0 开放源代码 DAW 发布
    导读Ardour8.0近日发布了,这是一款功能强大、免费、开源、跨平台的DAW(数字音频工作站),适用于GNU/Linux、macOS和Windows系统。Ardour8.0的亮点包括:全面支持NovationLaunchpadPro控制器、可对区域进行分组以一起移动或修剪、新的自动化绘图风格、重新设计的MI......
  • 开源 2 年、打磨 13 年、300 万行代码的开源项目
    从刻在石壁上的甲骨文,再到写在纸上的汉字,每一次信息载体的变更都是文化进步的重要标志。在如今这个信息数字化的时代,我们在享受着数字化便利的同时,数据也在我们看不见的地方飞速增长着,数据的重要性不言而喻。那应该如何将海量数据完整、有序、持久化地保存下来呢?程序员小伙伴看......
  • 《代码大全2》读后感
    代码改进,这部分包括以下几个主题,协同、测试、调试、重构、调整。这里的测试是开发者测试,应该是指单元测试了,现有很多合适的工具,比如NUnit、CppUnit、JUnit等等。调试主要难点在于寻找和定位问题,解决问题虽然也不容易,但需要的是远见,因为再不济,总会存在一种打补丁的方法可以临时解......
  • 代码生成器 CodeBuilder 3.2 正式版发布
    CodeBuilder是一款强大的代码生成工具,目前发布了3.2版本,大家可以前去下载体验官方主页。1、多种数据源基于ADO.NET的数据驱动PowerDesignerPDManerDbSchemaSwagger这几种数据源基本上已经覆盖了我们常用的数据环境了,如果你有能力的话,可以自己开发数据源......
  • 代码大全2读后感4
    《代码大全》看完前面觉得有很多值得回味的地方,而且每部分之后作者还推荐了不少经典书籍。本书的思想管理软件项目的本质是管理复杂性。代码承载的是人与人之间的交流。在这,作个读书心得。全书的主题是软件构建,大致看了一下目录,关于软件构建问题的方方面面均有涉及,共分7个部分,从软......
  • 代码 测试用例 测试用例 测试结果 26. 删除有序数组中的重复项
    给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通......