代码雨

秦志翔 2021年11月24日11:50:39站长分享评论字数 1430阅读4分46秒阅读模式

代码如下:

<html>

<head>

<title>代码雨-秦志翔</title>

<canvas id="canvas" style="background:black" width="620" height="340"></canvas>

<script type="text/javascript">

window.onload = function(){

//获取图形对象

var canvas = document.getElementById("canvas");

//获取图形的上下文

var context = canvas.getContext("2d");

//获取浏览器屏幕的宽度和高度

var W = window.innerWidth;

var H = window.innerHeight;

//设置canvas的宽度和高度

canvas.width = W;

canvas.height = H;

//每个文字的字体大小

var fontSize = 18;

//计算列

var colunms = Math.floor(W /fontSize);

//记录每列文字的y轴坐标

var drops = [];

//给每一个文字初始化一个起始点的位置

for(var i=0;i<colunms;i++){

drops.push(0);

}

//运动的文字

var str ="无良XXX协会";

//4:fillText(str,x,y);原理就是去更改y的坐标位置

//绘画的函数

function draw(){

//让背景逐渐由透明到不透明

context.fillStyle = "rgba(0,0,0,0.05)";

context.fillRect(0,0,W,H);

//给字体设置样式

//context.font = "700 "+fontSize+"px  微软雅黑";

context.font = fontSize + 'px arial';

//给字体添加颜色

context.fillStyle ="green";//随意更改字体颜色

//写入图形中

for(var i=0;i<colunms;i++){

var index = Math.floor(Math.random() * str.length);

var x = i*fontSize;

var y = drops[i] *fontSize;

context.fillText(str[index],x,y);

//如果要改变时间,肯定就是改变每次他的起点

if(y >= canvas.height && Math.random() > 0.92){

drops[i] = 0;

}

drops[i]++;

}

};

function randColor(){

var r = Math.floor(Math.random() * 256);

var g = Math.floor(Math.random() * 256);

var b = Math.floor(Math.random() * 256);

return "rgb("+r+","+g+","+b+")";

}

draw();

setInterval(draw,33);

};

</script>

<style type="text/css">

body{margin: 0; padding: 0; overflow: hidden;}

</style>

</head>

<body>

</body>

</html>

成品,直接浏览器运行即可。

代码非原创,取自网络,仅供学习交流使用。

继续阅读
weinxin
我的微信
微信扫一扫
秦志翔
  • 本文由 发表于 2021年11月24日11:50:39
  • 转载请务必保留本文链接:https://www.qzxec.com/812.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定