字母掉落js
时间:2023-7-9 16:42 作者:小诸葛 分类: 前端 正在检查是否收录...
字母飘落代码
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
* {
margin: 0;
padding: 0;
color: #fff;
box-sizing: border-box;
}
body {
background-color: #000;
overflow: hidden;
}
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script src="js/index.js"></script>
</body>
</html>
JavaScript
window.addEventListener("load", function () {
/**
* @description 通过指定选择器获取对应的函数节点
* @param {string} Selector 选择器
* @returns 函数节点
*/
function $(Selector) {
let nodeList = document.querySelectorAll(Selector);
if (nodeList.length === 0) {
return console.warn(`{Selector}没有获取节点`);
}
if (nodeList.length === 1) {
return nodeList[0];
}
if (nodeList.length > 1) {
return nodeList
}
}
//获取画板
//doccument 当前文档
//getElement 获取一个标签
//ById 通过Id名称的方式
//var 声明一片空间
//var canvas 声明一片空间的名字叫做canvas
var canvas = document.getElementById("canvas");
//获取画板权限 上下文
var ctx = canvas.getContext("2d");
//让画板的大小等于屏幕的大小
/*
思路:
1.获取屏幕对象
2.获取屏幕的尺寸
3.屏幕的尺寸赋值给画板
*/
//获取屏幕对象
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 = "01";
//往数组里面添加 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]++;
}
}
//定义一个定时器,每隔30毫秒执行一次
setInterval(drawString, 30);
})
效果图
推荐阅读:
扫描二维码,在手机上阅读