突然想到这个效果便想实现以下。

当然免不了要百度一下,于是查找到 http://www.cnblogs.com/myvin/p/4775152.html这篇文章, 效果可以查看博文中的给出的效果图。那么我们直接分析代码吧

<html lang="en">
<head>
<meta charset="UTF-8">
<title>The Matrix for Practice</title>
<style type="text/css">
*{margin: 0 auto;padding: 0 auto;}
body{background: black;overflow: hidden;}
h1{text-align: center;color: green;text-transform: uppercase;}
</style>
</head>
<body>
<h1>the matrix</h1>
<canvas id="matrix"></canvas>
<script type="text/javascript">
var matrix=document.getElementById("matrix"); //标签
var context=matrix.getContext("2d"); //设置为2d
matrix.height=window.innerHeight; //高度和宽度
matrix.width=window.innerWidth;
var drop=[];
var font_size=16;
var columns=matrix.width/font_size; //计算所能承载最大的列数
for(var i=0;i<columns;i++)
drop[i]=1+Math.random()*10; function drawMatrix(){ //绘制 //
context.fillStyle="rgba(0, 0, 0, 0.1)"; //黑色背景,透明度为0.9
context.fillRect(0,0,matrix.width,matrix.height); //绘制黑色半透明层 //绘制数据层
context.fillStyle="green";
//context.font=font_size+"px";
for(var i=0;i<columns;i++){
context.fillText(Math.floor(Math.random()*2),i*font_size,drop[i]*font_size);/*get 0 and 1 绘制到指定的(x,y) 点 */ if(drop[i]*font_size>(matrix.height*1/3)&&Math.random()>0.95)/*reset*/
drop[i]=0;
drop[i]++;
}
}
var cet= setInterval(drawMatrix,40) setTimeout(function(){ clearInterval(cet); },3000);
</script>
</body>
</html>

哈哈哈,直接将作者代码搬过来了,好了废话不多说直奔主题。

我这里贴出的代码是改善过的

if(drop[i]*font_size>(matrix.height*1/3)&&Math.random()>0.95)/*reset*/

这段代码原作者用的是2/3  但是实际效果第一次出现时候,一个整版面感觉像隔断了意向,而且需要“移动”到2/3处后才会错乱开来,感觉不够“神奇”于是稍加改动,当然,这样做并没有什么卵用,只是让整齐的版面时间减少了。

  drop[i]=1+Math.random()*10;

这句代码也是我改后的,原作者设置的是固的值。没有后边的Math.random()*10 这导致了开场要绘制所有的数据在同一行,还是那句话,看起来不够“神秘”,为了快速的进入“神秘”场景于是,略加改动。

下图是改动后的效果:

当然这整体看起来感觉还是很平淡呀。于是继续进行改造

 

js实现黑客帝国文字下落效果的更多相关文章

  1. JS 黑客帝国文字下落效果

    黑客帝国文字下落效果 源代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  2. JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果

    HTML代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <l ...

  3. js仿黑客帝国文字数字雨效果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. HTML5 Canvas实现黑客帝国文字掉落效果

    效果: 原理: 用canvas逐行输出文字,然后让背景颜色逐渐加深,再随机中断某些列. 代码: HTML: <canvas id="c"></canvas> ...

  5. 【Azure Developer】App Service + PubSub +JS 实现多人版黑客帝国文字流效果图

    需要描述 1)实现黑客帝国文字流效果图,JS功能 2)部署在云中,让大家都可以访问,App Service实现 3)大家都能发送消息,并显示在文字流中,PubSub(websocket)实现 终极效果 ...

  6. 使用Three.js实现神奇的3D文字悬浮效果

    声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 背景 在 Three.js Journey 课程示例中,提供了一个使用 Thre ...

  7. marquee实现文字移动效果;js+div实现文字无缝移动效果

    1.marquee实现文字移动: <marquee width="220px;" scrollamount="5" onmouseover="t ...

  8. JS实现图片翻书效果示例代码

    js 图片翻书效果.  picture.html  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  ...

  9. 18款js和jquery文字特效代码分享

    18款js和jquery文字特效代码分享 jQCloud标签云插件_热门城市文字标签云代码 js 3d标签云特效关键词文字球状标签云代码 原生JS鼠标悬停文字球状放大显示效果代码 原生js文字动画圆形 ...

随机推荐

  1. canvas图形函数

    function drawStar(cobj,x, y, radius1, radius2, num, drawType, color) {//参数:画笔,圆心X.圆心Y,半径1,半径2,形状边,实心 ...

  2. 自学Zabbix3.8.1.2-可视化Visualisation-Graphs自定义图表

    自学Zabbix3.8.1.2-可视化Visualisation-Graphs自定义图表 自定义图表,如名称所示,提供定制功能.虽然简单的图形可以很好地查看单个项目的数据,但是它们不提供配置功能.因此 ...

  3. Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)

    我们经常使用github上的开源项目,使用步骤也很简单 比如: compile 'acffo.xqx.xwaveviewlib:maven:1.0.0' 这里就学习一下如何将自己的类库做出这种可以供他 ...

  4. 英式英语VS美式英语

  5. 微信小程序教学第三章第三节(含视频):小程序中级实战教程:视图与数据关联

    § 视图与数据关联 本文配套视频地址: https://v.qq.com/x/page/z0554wyswib.html 开始前请把 ch3-3 分支中的 code/ 目录导入微信开发工具 首先 首先 ...

  6. 初识Avro

    Avro是Hadoop生态圈的一部分,由Hadoop的创始人Doug Cutting牵头开发,当前最新版本1.8.2.Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用.它的主要特点有: ...

  7. 关于《Head First Python》一书中print_lol()函数的思考

    关于<Head First Python>一书中print_lol()函数的思考 在<Head First Python>第一章中,讲述到Python处理复杂数据(以电影数据列 ...

  8. js验证input输入框(字母,数字,符号,中文)

    [javascript]代码库 <h1>js验证输入框内容</h1> <br /> <br /> 只能输入英文 <input type=" ...

  9. 使用SplitContainer来实现隐藏窗口的部分内容(转)

    有两种方法: (1) Splitter:比较老的方法 (2) SplitContainer:比较新的方法 最终界面如下: 方法一:使用Splitter实现 (1) 在窗口中添加一个Panel控件,即P ...

  10. Java中的集合概述

    Java中的集合类有两个重要的分支,分别是接口Collection(包括List,Set等)和接口Map. 由于HashSet的内部实现原理使用了HashMap,所以我们先来了解Map集合类. 1.H ...