日期:2014-05-16 浏览次数:21577 次
JS实现《黑客帝国》落地字母背景,这个特别有意思,主要是通过设置字符相关属性,控制循环字母距离顶部的高度值,来达到字母不断循环下落的功能。恩,还有加上一个随机机制,出现各种大小 各个位置 各种颜色 各种长度的效果。好了,废话不多说,天色已晚,先看代码。
======》先发图,有图才有真相。
===============》下面代码,还是挺好玩的哦。
<HTML> <HEAD> <TITLE>黑客帝国</TITLE> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </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 type="text/javascript"> var strCount; var str; var Color; var Font; var sLine = "1<br>0<br>0<br>.<br>1<br>0<br>1<br>1<br>1<br>.<br>0<br>O<br>1<br>1<br>0<br>1<br>1"; function OnLoad() { strCount = 60; 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] = "20px"; //文字的大小 Font[1] = "12px"; Font[2] = "24px"; Font[3] = "36px"; Font[4] = "48px"; setTimeout("strik()",100); } 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"];//距离顶部的高度等于累加上Speed的值 } } else if(Math.random()<0.25) //随机小数 { str[i] = new Array(); str[i]["Level"] = Math.round(Math.random()*4); //0~4 str[i]["Speed"] = (Math.round(Math.random()*str[i]["Level"])<<2)+5;//(0~16)+5 后面加的数字越小,字母下路的速度越慢 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]; //颜色0~9 str[i]["Carch"].style.filter = "glow(Color="+Color[str[i]["Level"]]+",Strength=5)";//滤镜效果 glow(color=+#988fff,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"&g