`
shuaigg.babysky
  • 浏览: 571164 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

模拟黑客帝国里面的文字下落

阅读更多

<html>
 <head>
  
 </head>
 <body bgcolor="black">
  <script>
   //创建下面的div , 子div的个数是2-7
   /*
    <div style="float:left">
     <div>1</div>
     <div>0</div>
     <div>1</div>
     <div>0</div>
     <div>1</div>
     <div>0</div>
    </div>
   */
   function createDivWithRandom() {
    //外层大的div
    var bigDiv = document.createElement('div');
    //子div的数目
    var ranNum = 3 + parseInt(7 * Math.random());
    //创建子节点
    for(var i = 1 ; i <= ranNum ; i++) {
     //小的div
     var smallDiv = document.createElement('div');
     smallDiv.style.color = 'white';
     smallDiv.style.fontSize = '10px';
     smallDiv.style.padding = '0px';
     smallDiv.style.margin = '0px';
     //里面的数字
     var numText = (parseInt(100 * Math.random()) % 2) + '';
     //textNode
     var textNode = document.createTextNode(numText);
     //小Div里面添加上textNode
     smallDiv.appendChild(textNode);
     //大的div里面添加上smallDiv
     bigDiv.appendChild(smallDiv);
    }
    //为大的div添加style float:left
    bigDiv.style.float = 'left';
    //为大的div添加class属性
    bigDiv.className = 'myDiv';
    //为大的div添加style position:absolute
    bigDiv.style.position = 'absolute';
    bigDiv.style.display = 'none';
    //添加到body尾部
    document.body.appendChild(bigDiv);
    //返回大的div
    return bigDiv;
   }
   function getMaxHeightOfDivs() {
    var divs = document.getElementsByTagName('DIV');
    var maxHeight = 0;
    for(var i = 0 ; i < divs.length ; i++) {
     if(divs[i].className == 'myDiv') {
      if(divs[i].offsetHeight > maxHeight) {
       maxHeight = divs[i].offsetHeight;
      }
     }
    }
    return maxHeight;
   }
   //返回五行五列的数组 , 里面装的是大的div
   function getArrayDivs() {
    //外层数组
    var divsArr = new Array();
    for(var i = 0 ; i < 5 ; i++) {
     //内层数组
     var innerArr = new Array();
     for(var j = 0 ; j < 5 ; j++) {
      //内层数组中添加bigDiv
      innerArr.push(createDivWithRandom());
     }
     //外层数组添加内层数组
     divsArr.push(innerArr);
    }
    //返回大数组
    return divsArr;
   }
   //得到窗口的尺寸
   function getWindowSize() {
    var docEle = document.documentElement;
    var width = window.innerWidth || docEle.clientWidth || document.body.clientWidth;
    var height = window.innerHeight || docEle.clientHeight || document.body.clientHeight;
    return {
     'width' : width ,
     'height' : height
    };
   }
   //其中height:窗口的最大高度
   //    divArrs:五行五列的bigDiv
   //    posObj:当前在屏幕的高度Object
   /*   {
       'height' : 高度,
       'index'  : 当前是第几个
      }
       */
   function getMappedObject() {
    //定义返回的结果
    var resultObject = {};
    //获得屏幕尺寸
    var screenJson = getWindowSize();
    //得到窗口的最大高度
    var screenHeight = screenJson.height;
    //赋值
    resultObject.height = screenHeight;
    //得到五行五列数组
    var divArrs = getArrayDivs();
    //赋值
    resultObject.divArrs = divArrs;
    //当前在屏幕高度的数组
    var posObj = new Array();
    //放五个值
    for(var i = 0 ; i < 5 ; i++) {
     var tmpObj = {};
     //放入初始值height和index
     tmpObj.height = parseInt(Math.random() * resultObject.height - getMaxHeightOfDivs() - 50);
     tmpObj.index = 0;
     //加入数组中
     posObj.push(tmpObj);
    }
    //赋值
    resultObject.posObj = posObj;
    //返回map
    return resultObject;
   }
   var map = getMappedObject();
   function changeAll() {
    var totalLength = map.divArrs.length ;
    var divArrs = map.divArrs;
    var posObj = map.posObj;
    for(var i = 0 ; i < totalLength ; i++) {
     //产生随机数
     var index = posObj[i].index;
     //调整div显示属性
     for(var j = 0 ; j < 5 ; j++ ) {
      divArrs[i][j].style.display = 'none';
     }
     //让高度向下走30
     var currHeight = posObj[i].height + 30 ;
     //如果高度大于屏幕的最大高度,则设置其高度为随机值 , div的下标加一
     if(currHeight >= (map.height - divArrs[i][index].offsetHeight)) {
      currHeight = parseInt(Math.random() * map.height - getMaxHeightOfDivs() - 50);
      index = index + 1;
      if(index == 5) {
       index = 0;
      }
     }
     //保存到map中
     posObj[i].height = currHeight;
     //设置left top值
     divArrs[i][index].style.left = ((i + 1) * 10) + 'px';
     divArrs[i][index].style.top =  currHeight + 'px';
     //设置当前div的显示属性
     divArrs[i][index].style.display = 'block';
    }
    setTimeout('changeAll()' , 100);
   }
   changeAll();
  </script>
 </body>
</html>

分享到:
评论

相关推荐

    黑客帝国 超酷文字下落

    在C++中实现“黑客帝国”式的超酷文字下落特效,主要涉及以下几个知识点: 1. **字符数组与字符串**:首先,我们需要一个包含大量字符的数组或字符串来模拟下落的文字。在C++中,可以使用`char`类型的数组或`std::...

    Flash版黑客帝国文字下落特效.rar

    《Flash版黑客帝国文字下落特效》是一款灵感来源于经典电影《黑客帝国》的Flash动画效果。这个特效模拟了电影中著名的“代码雨”场景,即无数字符如雨水般垂直下落,营造出一种科技感十足的视觉体验。在Flash动画...

    黑客帝国 屏保.rar

    黑客帝国屏保则通过动态的图形和声音效果,模拟电影中的场景,比如矩阵代码下落,为用户营造出仿佛置身于电影世界的感觉。 制作一款屏保涉及到多个技术环节,包括编程语言(如C++或Visual Basic)、图形设计、动画...

    HTML5黑客帝国文字雨特效.rar

    在这个“HTML5黑客帝国文字雨特效.rar”中,我们主要关注的是利用HTML5和CSS3来实现电影《黑客帝国》中经典的文本下落效果。 在HTML5中,我们可以使用`&lt;canvas&gt;`元素来绘制图形,实现动态效果。在这个特效中,可能...

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

    在JavaScript(JS)中实现黑客帝国文字下落效果是一种经典的网页动态效果,它模拟了电影《黑客帝国》开头的字符瀑布场景。这个效果通常通过创建多个动态文本元素并以随机速度下落来实现。让我们详细了解一下如何使用...

    html5 canvas黑客帝国文字瀑布流效果

    接下来,我们需要模拟黑客帝国的字符集。这通常包括各种ASCII字符,比如数字、字母和特殊符号。我们可以创建一个数组来存储这些字符。 ```javascript var matrixChars = ['0', '1', '2', '3', '4', '5', '6', '7', ...

    黑客帝国代码flash.zip

    另一个是数字代码相关的文件,可能是用于模拟黑客帝国中经典“绿色代码雨”效果的源代码。 Flash是一种广泛应用于创建互动式矢量图形、动画、游戏和应用程序的平台,尤其在20世纪末到21世纪初的互联网早期阶段非常...

    黑客帝国数字矩阵PPT下载

    首先,数字矩阵是《黑客帝国》电影中用来描绘虚拟现实世界的象征,由无数绿色的二进制数字流组成,这些数字流快速下落,形成一种视觉冲击力极强的画面。在IT术语中,二进制是计算机语言的基础,0和1的组合代表了所有...

    android上仿黑客帝国字符雨

    在Android平台上实现“黑客帝国”风格的字符雨效果,是一种极具视觉冲击力的动画设计,它通常涉及到TextView组件、自定义动画以及定时器等技术。接下来,我们将详细探讨如何利用这些技术来创建这样的效果。 首先,`...

    html5_黑客帝国瀑布

    可以使用时间间隔(`setInterval`或`requestAnimationFrame`)来定期更新画布上的内容,模拟文本的下落和消失。为了实现中文支持,需要确保字体设置正确,并且JavaScript代码能够处理UTF-8编码的中文字符。 此外,...

    黑客帝国文字雨矩阵动画特效.rar

    《黑客帝国文字雨矩阵动画特效》是一个非常经典的视觉效果,源于1999年上映的科幻电影《黑客帝国》(The Matrix)。这个特效以其独特的视觉冲击力和科技感,成为了电影史上最标志性的元素之一,同时也对后来的电影、...

    js-文字雨-黑客帝国效果

    在这个特效中,我们将创建一系列的文字元素,并控制它们沿屏幕垂直移动,模拟雨滴下落的过程。 1. **创建文字元素**:首先,我们需要在JavaScript中生成包含随机字符的文字元素。这些字符可以来自ASCII码表中的特定...

    Flash文字下落动画.rar

    在本资源"Flash文字下落动画.rar"中,我们主要探讨的是如何在Adobe Flash中创建一个类似电影《黑客帝国》开头的文字下落效果。这个效果是通过编程和动画设计技巧实现的,它不仅展示了文字的动态美感,还具有强烈的...

    HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)

    HTML+JS实现的“代码雨”效果是一种模拟黑客帝国电影中经典的文本下落场景的视觉特效。这个效果通过在HTML页面上使用JavaScript动态绘制Canvas元素来实现。以下是一些关键的知识点: 1. **HTML基础知识**: - `&lt;!...

    字符雨 字母雨 黑客帝国 数字雨 带源码 win32 可做屏保

    字符雨、字母雨和数字雨,这种视觉效果在IT领域中常常被用来模拟黑客电影中的经典场景,如《黑客帝国》。这是一种通过快速连续显示字符、字母或数字,营造出一种信息飞速流动的视觉体验。这个项目提供了一个Win32...

    Eclipse SWT 黑客帝国炫酷动态背景登录对话框

    对话框的背景不再是静态的,而是动态的黑客帝国风格的字符雨效果,这种效果通常由快速下落的绿色代码字符组成,给人一种高科技且神秘的感觉。这种设计不仅提升了用户体验,也展示了SWT和JFace的强大功能。 实现这样...

    HTML5 JavaScript 模仿骇客帝国文字矩阵效果

    在本主题中,我们将深入探讨如何使用这两种技术来模仿著名的《黑客帝国》电影中的文字矩阵效果。这种效果通常表现为一串串快速下落的代码,给人一种高科技、未来感的视觉冲击。 首先,HTML5在此项目中主要负责页面...

    js操作canvas实现好看的黑客帝国代码下雨的效果

    总的来说,实现“黑客帝国”代码下雨效果主要涉及JavaScript对Canvas API的熟练运用,包括绘图、文字处理、定时器和动画控制等方面。这个项目对于前端开发新手来说是一个很好的练习,可以帮助他们理解JavaScript的...

    html5实现的酷炫黑客帝国代码雨全屏动画背景特效源码.zip

    在本案例中,“html5实现的酷炫黑客帝国代码雨全屏动画背景特效源码.zip”是一个使用HTML5编写的代码库,用于创建类似于电影《黑客帝国》中的经典“代码雨”效果。这种特效通常由快速下落的字符或数字组成,营造出一...

Global site tag (gtag.js) - Google Analytics