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

当然免不了要百度一下,于是查找到 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. idea的快捷键

    idea的快捷键大全 Alt+回车 导入包,自动修正 Ctrl+N   查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L  格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+ ...

  2. java实现播放mp3功能

    1.首先引入jlayer.jar <!-- https://mvnrepository.com/artifact/javazoom/jlayer --> <dependency> ...

  3. 利用reverse索引优化like语句的方法详解

    在有一些情况下,开发同学经常使用like去实现一些业务需求,当使用like时,我们都知道使用like 前%(like '%111')这种情况是无法使用索引的,那么如何优化此类的SQL呢,下面是一个案例 ...

  4. 如何通过Mock API提高APP开发效率?

    APP开发过程中,如果可以在客户端的正常项目代码中,自然地(不影响最终apk)添加一种模拟服务器数据返回的功能,这样就可以很方便的在不依赖服务器的情况下展开客户端的开发. Mock API提供了这一问 ...

  5. 原生JS的Ajax

    转自:https://www.cnblogs.com/yufann/p/JS-Ajax.html 1.创建一个Ajax对象 非IE6浏览器:var obj = new XMLHttpReuqest() ...

  6. 《软件测试的艺术(原书第2版)》【PDF】下载

    <软件测试的艺术(原书第2版)>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196343 内容简介 本书以一次自评价测试开篇,从软 ...

  7. 【python】函数参数关键字索引、参数指定默认值、搜集参数

  8. Xamarin Android自定义文本框

    xamarin android 自定义文本框简单的用法 关键点在于,监听EditText的内容变化,不同于java中文本内容变化去调用EditText.addTextChangedListener(m ...

  9. STM32基础分析——USART的DMA模式

    有关USART的DMA传输模式,其基本的概念和配置,网上有很多博客和教程都有,这里不再赘述,只是记录一下比较容易忽视而造成调试不通的问题. 1. 串口发送和接收分属两个DMA通道 一般方式操作串口时, ...

  10. UVA 11825 Hackers' Crackdown

    题目大意就是有一个图,破坏一个点同时可以破坏掉相邻点.每个点可以破坏一次,问可以完整破坏几次,点数=16. 看到16就想到状压什么的. 尝试设状态:用f[i]表示选的情况是i(一个二进制串),至少可以 ...