PDA

View Full Version : Matrix text effect question



sumer
09-17-2012, 01:49 AM
Matrix text effect

http://www.dynamicdrive.com/dynamicindex10/matrixeffect.htm

Is there a way to redirect the user to a new page say 5 seconds or so after the phrase has fully loaded?

Thanks.

bernie1227
09-17-2012, 06:39 AM
redirectTime = "1500";
redirectURL = "http://www.your-page.com";
function timedRedirect() {
setTimeout("location.href = redirectURL;",redirectTime);
}

and then call the function in the body.

keyboard
09-17-2012, 06:46 AM
redirectTime = "1500";
redirectURL = "http://www.your-page.com";
function timedRedirect() {
setTimeout("location.href = redirectURL;",redirectTime);
}

and then call the function in the body.

He said after the text affect is finished, not after page load... so that code won't work...

bernie1227
09-17-2012, 08:23 AM
well that's easy, just set a listener for when the message loads, and trigger the function.

sumer
09-17-2012, 08:54 AM
well that's easy, just set a listener for when the message loads, and trigger the function.

Thanks Bernie, can you tell me how to go about doing this?

bernie1227
09-17-2012, 10:14 AM
you will need to use this slightly modified script:


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 redirectURL = "http://www.your-page.com";
/***********************************************
* The Matrix Text Effect- by Richard Womersley (http://www.mf2fm.co.uk/rv)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

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);
setTimeout("location.href = redirectURL;",y);
}
}

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);
}
}

sumer
09-17-2012, 11:03 AM
[QUOTE=bernie1227;281420]you will need to use this slightly modified script:
/QUOTE]

Thanks very much, I will give it a go and let you know.

sumer
09-17-2012, 10:40 PM
Thanks, it works perfectly. Is there a way to delay the redirect, say for a second or two?

bernie1227
09-18-2012, 01:07 AM
The time you wish to wait afterwards Is defined at the top.


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 redirectURL = "http://www.your-page.com";
var timeAfter = 500;
/***********************************************
* The Matrix Text Effect- by Richard Womersley (http://www.mf2fm.co.uk/rv)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

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);
* setTimeout("location.href = redirectURL;",timeAfter + y);
* }
}

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);
* }
}

sumer
09-18-2012, 01:43 AM
Again, thank you very much.

bernie1227
09-18-2012, 02:24 AM
sorry about the stars, Youll need to find and replace them.

bernie1227
09-18-2012, 03:29 AM
There we go, done it for you.


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 redirectURL = "http://www.your-page.com";
var timeAfter = 500;
/***********************************************
* The Matrix Text Effect- by Richard Womersley (http://www.mf2fm.co.uk/rv)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

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);
setTimeout("location.href = redirectURL;",timeAfter + y);
}
}

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);
}
}

leeg83
02-18-2013, 04:09 PM
is there a way to change the background to an image so I could center a logo and have the effect over the top?