看过黑客帝国的朋友或许都对开头的字幕效果很熟悉,自从影片播放以来,网页设计者有不少都在模仿这种字母掉落的效果,而且最后还有文字显现效果“I love you”,你可以稍加修改,在情人节,用来对你的恋人表白哦~
运行效果图:
大家也动手运行一下, ----------------效果演示----------------
为大家分享js仿黑客帝国字母掉落效果代码如下
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />
<title>JS仿黑客帝国字母掉落效果</title>
<style type=text/css>
.matrix{padding-right: 0px; padding-left: 0px; font-size: 10pt; padding-bottom: 0px; margin: 0px; width: 10px; padding-top: 0px; font-family: lucida console, courier, monotype; text-align: center}
</style>
</head>
<body>
<center>JS仿黑客帝国字母掉落效果</center><br><center>
<SCRIPT language=JavaScript type=text/javascript>
var rows=11; // must be an odd number
var speed=50; // lower is faster
var reveal=2; // between 0 and 2 only. The higher, the faster the word appears
var effectalign=\"default\" //enter \"center\" to center it.
var w3c=document.getElementById && !window.opera;;
var ie45=document.all && !window.opera;
var ma_tab, matemp, ma_bod, ma_row, x, y, columns, ma_txt, ma_cho;
var m_coch=new Array();
var m_copo=new Array();
window.onload=function() {
if (!w3c && !ie45) return
var matrix=(w3c)?document.getElementById(\"matrix\"):document.all[\"matrix\"];
ma_txt=(w3c)?matrix.firstChild.nodeValue:matrix.innerHTML;
ma_txt=\" \"+ma_txt+\" \";
columns=ma_txt.length;
if (w3c) {
while (matrix.childNodes.length) matrix.removeChild(matrix.childNodes[0]);
ma_tab=document.createElement(\"table\");
ma_tab.setAttribute(\"border\", 0);
ma_tab.setAttribute(\"align\", effectalign);
ma_tab.style.backgroundColor=\"#000000\";
ma_bod=document.createElement(\"tbody\");
for (x=0; x<rows; x++) {
ma_row=document.createElement(\"tr\");
for (y=0; y<columns; y++) {
matemp=document.createElement(\"td\");
matemp.setAttribute(\"id\", \"Mx\"+x+\"y\"+y);
matemp.className=\"matrix\";
matemp.appendChild(document.createTextNode(String.fromCharCode(160)));
ma_row.appendChild(matemp);
}
ma_bod.appendChild(ma_row);
}
ma_tab.appendChild(ma_bod);
matrix.appendChild(ma_tab);
} else {
ma_tab=\'<ta\'+\'ble align=\"\'+effectalign+\'\" border=\"0\" style=\"background-color:#000000\">\';
for (var x=0; x<rows; x++) {
ma_tab+=\'<t\'+\'r>\';
for (var y=0; y<columns; y++) {
ma_tab+=\'<t\'+\'d class=\"matrix\" id=\"Mx\'+x+\'y\'+y+\'\">?</\'+\'td>\';
}
ma_tab+=\'</\'+\'tr>\';
}
ma_tab+=\'</\'+\'table>\';
matrix.innerHTML=ma_tab;
}
ma_cho=ma_txt;
for (x=0; x<columns; x++) {
ma_cho+=String.fromCharCode(32+Math.floor(Math.random()*94));
m_copo[x]=0;
}
ma_bod=setInterval(\"mytricks()\", speed);
}
function mytricks() {
x=0;
for (y=0; y<columns; y++) {
x=x+(m_copo[y]==100);
ma_row=m_copo[y]%100;
if (ma_row && m_copo[y]<100) {
if (ma_row<rows+1) {
if (w3c) {
matemp=document.getElementById(\"Mx\"+(ma_row-1)+\"y\"+y);
matemp.firstChild.nodeValue=m_coch[y];
}
else {
matemp=document.all[\"Mx\"+(ma_row-1)+\"y\"+y];
matemp.innerHTML=m_coch[y];
}
matemp.style.color=\"#33ff66\";
matemp.style.fontWeight=\"bold\";
}
if (ma_row>1 && ma_row<rows+2) {
matemp=(w3c)?document.getElementById(\"Mx\"+(ma_row-2)+\"y\"+y):document.all[\"Mx\"+(ma_row-2)+\"y\"+y];
matemp.style.fontWeight=\"normal\";
matemp.style.color=\"#00ff00\";
}
if (ma_row>2) {
matemp=(w3c)?document.getElementById(\"Mx\"+(ma_row-3)+\"y\"+y):document.all[\"Mx\"+(ma_row-3)+\"y\"+y];
matemp.style.color=\"#009900\";
}
if (ma_row<Math.floor(rows/2)+1) m_copo[y]++;
else if (ma_row==Math.floor(rows/2)+1 && m_coch[y]==ma_txt.charAt(y)) zoomer(y);
else if (ma_row<rows+2) m_copo[y]++;
else if (m_copo[y]<100) m_copo[y]=0;
}
else if (Math.random()>0.9 && m_copo[y]<100) {
m_coch[y]=ma_cho.charAt(Math.floor(Math.random()*ma_cho.length));
m_copo[y]++;
}
}
if (x==columns) clearInterval(ma_bod);
}
function zoomer(ycol) {
var mtmp, mtem, ytmp;
if (m_copo[ycol]==Math.floor(rows/2)+1) {
for (ytmp=0; ytmp<rows; ytmp++) {
if (w3c) {
mtmp=document.getElementById(\"Mx\"+ytmp+\"y\"+ycol);
mtmp.firstChild.nodeValue=m_coch[ycol];
}
else {
mtmp=document.all[\"Mx\"+ytmp+\"y\"+ycol];
mtmp.innerHTML=m_coch[ycol];
}
mtmp.style.color=\"#33ff66\";
mtmp.style.fontWeight=\"bold\";
}
if (Math.random()<reveal) {
mtmp=ma_cho.indexOf(ma_txt.charAt(ycol));
ma_cho=ma_cho.substring(0, mtmp)+ma_cho.substring(mtmp+1, ma_cho.length);
}
if (Math.random()<reveal-1) ma_cho=ma_cho.substring(0, ma_cho.length-1);
m_copo[ycol]+=199;
setTimeout(\"zoomer(\"+ycol+\")\", speed);
}
else if (m_copo[ycol]>200) {
if (w3c) {
mtmp=document.getElementById(\"Mx\"+(m_copo[ycol]-201)+\"y\"+ycol);
mtem=document.getElementById(\"Mx\"+(200+rows-m_copo[ycol]--)+\"y\"+ycol);
}
else {
mtmp=document.all[\"Mx\"+(m_copo[ycol]-201)+\"y\"+ycol];
mtem=document.all[\"Mx\"+(200+rows-m_copo[ycol]--)+\"y\"+ycol];
}
mtmp.style.fontWeight=\"normal\";
mtem.style.fontWeight=\"normal\";
setTimeout(\"zoomer(\"+ycol+\")\", speed);
}
else if (m_copo[ycol]==200) m_copo[ycol]=100+Math.floor(rows/2);
if (m_copo[ycol]>100 && m_copo[ycol]<200) {
if (w3c) {
mtmp=document.getElementById(\"Mx\"+(m_copo[ycol]-101)+\"y\"+ycol);
mtmp.firstChild.nodeValue=String.fromCharCode(160);
mtem=document.getElementById(\"Mx\"+(100+rows-m_copo[ycol]--)+\"y\"+ycol);
mtem.firstChild.nodeValue=String.fromCharCode(160);
}
else {
mtmp=document.all[\"Mx\"+(m_copo[ycol]-101)+\"y\"+ycol];
mtmp.innerHTML=String.fromCharCode(160);
mtem=document.all[\"Mx\"+(100+rows-m_copo[ycol]--)+\"y\"+ycol];
mtem.innerHTML=String.fromCharCode(160);
}
setTimeout(\"zoomer(\"+ycol+\")\", speed);
}
}
// -->
</SCRIPT>
<div id=matrix>I love u</div>
</center>
</body>
</html>
希望本文所述对大家的javascript程序设计有所帮助。
本文地址:https://www.stayed.cn/item/7955
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我