JS实现黑客帝国文字下落效果


Posted in Javascript onSeptember 01, 2015

代码一:

黑客帝国文字下落效果

JS实现黑客帝国文字下落效果

查看效果     源码下载

源代码如下:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>黑客帝国文字下落</title>
  <style>
  html, body {margin:0; padding:0; background-color:#000;}
  #divList {width:800px; height:500px; border:solid 3px gray; margin: 0px auto; overflow:hidden; position: relative;}
  .divText {position: absolute;}
  .divText span {display:block; font-weight: bold; font-family:Courier New; }
  </style>
  <script src="http://apps.bdimg.com/libs/jquery/1.9.0/jquery.min.js"></script>
 </head>
 <body>
 <h1 style="text-align:center; color:gray;">黑客帝国文字下落 (<span id="spanCount">0</span>)</h1>
 <div id="divList">
 </div>
 <script>
 function rand(min, max)
 {
  return min + Math.round(Math.random() * (max - min));
 }
 function add()
 {
  var x = rand(0, 800);
  var html = '<div class="divText" style="left:' + x + 'px; bottom:500px;">';
  /*
  var color1 = [];
  var color2 = [];
  var color3 = [];
  var color4 = [];
  var color5 = [];
  var color6 = [];
  for (var i=1; i<17; i++)
  {
   var f = i.toString(16);
   color1.push('0' + f + '0');
   color2.push(f + '00');
   color3.push('00' + f);
   color4.push('0' + f + f);
   color5.push(f + f + '0');
   color6.push(f + '0' + f);
  }
  var color = [color1, color2, color3, color4, color5, color6];
  var ci = rand(0, 5);
  */
  var color = [];
  for (var i=1; i<17; i++)
  {
   var f = i.toString(16);
   color.push('0' + f + '0');
  }
  var fontSize = rand(9, 24);
  for (var i=1; i<17; i++)
  {
   var c = rand(33, 127);
   var c = String.fromCharCode(c);
   // html += '<span class="s' + i + '" style="color:#' + color[ci][i-1] + '; font-size:' + fontSize + 'px;">' + c + '</span>';
   html += '<span class="s' + i + '" style="color:#' + color[i-1] + '; font-size:' + fontSize + 'px; text-shadow:0px 0px 10px #' + color[i-1] + ';">' + c + '</span>';
  }
  html += '</div>';
  $('#divList').append(html);
 }
 function run()
 {
  var x = rand(0, 100);
  if (x < 100)
  {
   add();
  }
  $('#spanCount').html($('.divText').size());
  $('.divText').each(function(){
   var y = $(this).css('bottom');
   y = parseInt(y);
   y -= $(this).find('span').eq(0).height();
   $(this).css('bottom', '' + y + 'px');
   if (y + $(this).height() <= 0)
   {
    $(this).remove();
    return;
   }
   $(this).find('span').each(function(){
    var c = rand(33, 127);
    var c = String.fromCharCode(c);
    $(this).html(c);
   });
  });
  window.setTimeout(run, 100);
 }
 run();
 </script>
 </body>
</html>

代码二:

在一个JS的学习资料上,看到一个关于黑客帝国文字下落的特效!挺好玩的,贴个源码分享一下!

<HTML>
<HEAD>
 <TITLE>《黑客帝国》中的字符下落效果</TITLE>
 <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</HEAD>
<style type="text/css">
body
{
 overflow:hidden;
 margin:0;
 background-color:#000000;
 font-family:宋体;
}
DIV.#heike
{
 overflow:hidden;
 position:relative;
 top:5%;
 width:90%;
 height:90%;
 border-style:solid;
 border-width:1;
 border-color:#009900;
}
</style>
<script language="javascript">
var strCount;
var str;
var Color;
var Font;
var sLine = "0<br/>1<br/>0<br/>1<br/>0<br/>0<br/>1<br/>0<br/>1<br/>0<br/>";
function OnLoad()
{
 strCount = 40;
 str = [];
 Color = [];
 Font = [];
 Color[0] = "#002211";          //文字的颜色
 Color[1] = "#003311";
 Color[2] = "#005511";
 Color[3] = "#008811";
 Color[4] = "#00BB99";
 Color[5] = "#114411";
 Color[6] = "#335566";
 Color[7] = "#668899";
 Color[8] = "#99BBAA";
 Color[9] = "#CECECC";
 Font[0] = "10px";           //文字的大小
 Font[1] = "12px"; 
 Font[2] = "14px";
 Font[3] = "16px";
 Font[4] = "18px";
 setTimeout("strik()",50); }
function strik()
{
 for(var i=0;i<strCount;i++)
 {
  if(typeof(str[i]) != "undefined")     //如果字符串存在
  {
   if(str[i]["Carch"].style.pixelTop > heike.clientHeight)
   {
    str[i]["Carch"].outerHTML = "";
    delete str[i]["Level"];      //删除数组元素
    delete str[i]["Speed"];
    delete str[i]["Carch"];
    delete str[i];
   }
   else
   {
    str[i]["Carch"].style.pixelTop += str[i]["Speed"];
   }
  }
  else if(Math.random()<0.25)        //随机小数
  {
   str[i] = new Array();
   str[i]["Level"] = Math.round(Math.random()*4);
   str[i]["Speed"] = (Math.round(Math.random()*str[i]["Level"]) <<2)+50;
   document.all["heike"].insertAdjacentHTML("AfterBegin","<span id='SPAN_"+i+"'>"+sLine+"</span>");
   str[i]["Carch"] = document.all["SPAN_"+i];
   str[i]["Carch"].style.fontSize = Font[str[i]["Level"]];                   //字体
   str[i]["Carch"].style.position = "absolute";  //位置
   str[i]["Carch"].style.pixelLeft = Math.round(Math.random() *heike.clientWidth);             //x坐标
   str[i]["Carch"].style.pixelTop = -str[i]["Carch"].offsetHeight;                 //y坐标
   str[i]["Carch"].style.color = Color[str[i]["Level"]+5];                   //颜色
   str[i]["Carch"].style.filter = "glow(Color="+Color[str[i] ["Level"]]+",Strength=5)";           //滤镜效果
   str[i]["Carch"].style.zIndex = str[i]["Level"];  //z-Index
  }
 }
 setTimeout("strik()",50);
}
</script>
<BODY onload="OnLoad()">
<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td align="center" height="100%"><div id="heike"></div></td></tr>
<tr><td align="center" style="padding:5;font-size:9pt;color:#FFFFFF;">使用 IE 6.0 以上版本或以IE 为核心的浏览器浏览本页,1024*768分辨率为佳</td></tr>
</table> 
 </BODY>
</HTML>

提示:重点是对颜色和速度的随机设置。JavaScript中的“Math”对象用来提供数学运算,其中“Math.random”用来获取一个0到1之间的随机数。“Math.round”是采用四舍五入方式取得最接近的整数。代码中使用了两维数组,“delete”方法用来删除数组中的元素。

( 你可以自己去修改参数看看对应的效果,如:JS中关于文字下降速度控制的变量Speed,可以将其调的大一些,让它更快些;还可以修改CSS样式里溢出属性“overflow”取消隐藏,看看有多难看!。。。。。)

Javascript 相关文章推荐
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 Javascript
js下利用控制器载入对应脚本
Jul 17 Javascript
Extjs优化(一)删除冗余代码提高运行速度
Apr 15 Javascript
js模仿jquery的写法示例代码
Jun 16 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
Jul 16 Javascript
动态设置form表单的action属性的值的简单方法
May 25 Javascript
JavaScript简单实现弹出拖拽窗口(一)
Jun 17 Javascript
基于JavaScript实现随机颜色输入框
Dec 10 Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 Javascript
使用webpack构建应用的方法步骤
Mar 04 Javascript
浅谈redux, koa, express 中间件实现对比解析
May 23 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 Javascript
JavaScript中this详解
Sep 01 #Javascript
基于JavaScript制作霓虹灯文字 代码 特效
Sep 01 #Javascript
jquery实现简单合拢与展开网页面板的方法
Sep 01 #Javascript
jQuery实现可高亮显示的二级CSS菜单效果
Sep 01 #Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
Sep 01 #Javascript
JavaScript常用标签和方法总结
Sep 01 #Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 #Javascript
You might like
Cakephp 执行主要流程
2010/03/24 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
不安全的常用的js写法
2009/09/15 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
js中作用域的实例解析
2017/03/16 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python中的推导式使用详解
2015/06/03 Python
Python中取整的几种方法小结
2017/01/06 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
C语言编程练习
2012/04/02 面试题
交通专业个人自荐信格式
2013/09/23 职场文书
教师自我评价范文
2013/12/16 职场文书
企业宣传方案
2014/03/04 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
物业管理专业自荐信
2014/07/01 职场文书
小学优秀学生评语
2014/12/29 职场文书
2015入党自荐书范文
2015/03/05 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
golang语言指针操作
2022/04/14 Golang