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 相关文章推荐
SWFObject Flash js调用类
Jul 08 Javascript
Mootools 1.2教程 滚动条(Slider)
Sep 15 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
Mar 08 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
Feb 04 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
Sep 05 Javascript
JQuery 动态生成Table表格实例代码
Dec 02 Javascript
node.js基于express使用websocket的方法
Nov 09 Javascript
详解a标签添加onclick事件的几种方式
Mar 29 Javascript
手把手教你使用TypeScript开发Node.js应用
May 06 Javascript
webpack4 optimization使用总结
Nov 10 Javascript
node.js使用http模块创建服务器和客户端完整示例
Feb 10 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
Zerg基本策略
2020/03/14 星际争霸
Terran魔法科技
2020/03/14 星际争霸
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
python链接Oracle数据库的方法
2015/06/28 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
婚假请假条格式及范文
2014/04/10 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
高一数学教学反思
2016/02/18 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript