博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5 Canvas实现黑客帝国文字掉落效果
阅读量:7033 次
发布时间:2019-06-28

本文共 1061 字,大约阅读时间需要 3 分钟。

效果:

原理:

  用canvas逐行输出文字,然后让背景颜色逐渐加深,再随机中断某些列。

代码:

HTML:

CSS:

canvas {
display: block;}

JS:

var c = document.getElementById("c");var ctx = c.getContext("2d");//全屏c.height = window.innerHeight;c.width = window.innerWidth;//文字var txts = "0123456789";//转为数组txts = txts.split("");var font_size = 16;var columns = c.width/font_size; //用于计算输出文字时坐标,所以长度即为列数var drops = [];//初始值for(var x = 0; x < columns; x++)    drops[x] = 1; //输出文字function draw(){    //让背景逐渐由透明到不透明    ctx.fillStyle = "rgba(0, 0, 0, 0.05)";    ctx.fillRect(0, 0, c.width, c.height);        ctx.fillStyle = "#0F0"; //文字颜色    ctx.font = font_size + "px arial";    //逐行输出文字    for(var i = 0; i < drops.length; i++)    {        //随机取要输出的文字        var text = txts[Math.floor(Math.random()*txts.length)];        //输出文字,注意坐标的计算        ctx.fillText(text, i*font_size, drops[i]*font_size);                //如果绘满一屏或随机数大于0.95(此数可自行调整,效果会不同)        if(drops[i]*font_size > c.height || Math.random() > 0.95)            drops[i] = 0;                //用于Y轴坐标增加        drops[i]++;    }}setInterval(draw, 33);

转载地址:http://dgual.baihongyu.com/

你可能感兴趣的文章
队列 P1160 队列安排(啊啊 不会啊)
查看>>
Yii2.0如何建立公共方法
查看>>
规范的面向对象编程要点
查看>>
jQuery选择器之属性过滤选择器
查看>>
设计模式:灵活编程(组合模式)
查看>>
用C语言实现 ls -al 功能
查看>>
centos7线程、文件打开数等调优日志(非优化案例、仅仅是个个人记录、为把相关配置文件记录一下)...
查看>>
matlab-画一个圆
查看>>
Java Calendar类的使用总结
查看>>
LeetCode算法题-Perfect Number(Java实现)
查看>>
maven3.1安装及配置
查看>>
待人原则
查看>>
如何熟悉一个新项目
查看>>
2018年蓝桥杯java b组第二题
查看>>
结对-贪吃蛇游戏-测试过程
查看>>
实现Servlet容器一
查看>>
Python函数式编程指南(转)
查看>>
Spring4.x所有Maven依赖
查看>>
盒子变形-盒子加padding后 变形问题,
查看>>
小程序:在{{}}中使用函数
查看>>