一段文字胡乱变大变小,象流水一样,效果非常好

- 中国WEB开发者网络 (http://www.webasp.net)
-- 网页特效 (http://www.webasp.net/javascript/)
--- 一段文字胡乱变大变小,象流水一样,效果非常好 (http://www.webasp.net/javascript/1/421.htm)
-- 发布日期: 2005-06-08
<!-- 网页特效代码由[中国WEB开发者网络:http://www.ChinaWebDev.com]提供! -->
<!-- 要实现此效果需要 1 个步骤: -->

<!-- 第 1 步: -->
<!-- 把下面的代码加到<BODY></BODY>区域中: -->

<SCRIPT LANGUAGE=JAVASCRIPT>

var ltext="webasp.net-网页特效欢迎你的光临!!!" /*the message*/

var spc=10 /*spacing*/

var speed=50 /*speed in milliseconds*/

var times=2 /*number of times to run each style*/



/* DISPLAY DIMENTIONS */

var rows=5 /*number of textarea rows*/

var cols=60 /*number of textarea coloums*/



/* ADVANCED OPTIONS */

var addstopbutton=true /*add optional stop button? ture=yes false=no*/

var stopbuttonvalue=" STOP " /* Text For Stop Button */

var startvalue=" START " /* When Stop Button Clicked Button Value=? */



/* END OF OPTIONS */



var len=spc*2;var text=ltext;var i;

var stop=false;var stopped;

for (i=0;i<spc;i++){text=text+" "}

function array(n) {

this.length = n

for (i=1; i <= n; i++){this[i] ="";}

return this}



document.writeln('<FORM NAME="F">')

document.writeln('<TEXTAREA ROWS='+rows+' COLS='+cols+' NAME="D" WRAP=SOFT<>/TEXTAREA>')

if (addstopbutton){document.writeln('<BR><INPUT TYPE=BUTTON VALUE="'+stopbuttonvalue+'" ONCLICK="stopstart()" NAME=SS>')}

document.writeln('</FORM>')



var l=text.length

var ll=ltext.length;

var lb=new array(l)

var lr=new array(spc*2+1)

var lg=new array(ll)

var lk=new array(ll)

lb[0]=text;

lb[l]=text;

for (j=1;j<l;j++){

for (i=1;i<=l;i++){

lb[j]=lb[j]+lb[j-1].charAt(i);if(i==l){lb[j]=lb[j]+lb[j-1].charAt(0)

}

}}



lr[0]=ltext;

lr[spc*2]=ltext;

for (i=1;i<=spc;i++){

lr[i]=" "+lr[i-1]

}

for (i=spc*2-1;i>=spc+1;i--){

lr[i]=" "+lr[i+1]

}



lg[0]=ltext;

var ll=ltext.length;

for (j=1;j<ll;j++){

for (i=lg[j-1].length-2;i>=0;i--){

lg[j]=lg[j-1].charAt(i)+lg[j];

}}

lk[ll]=ltext;

for (j=ll-1;j>=0;j--){

for (i=1;i<=l;i++){

lk[j]=lk[j]+lk[j+1].charAt(i);

}}



var lge="";var lbe="";var rle="";

for (i=0;i<rows;i++){

lge=lge+lg[i]+unescape('%0D%0A')}

for (i=0;i<rows;i++){

lbe=lbe+lb[l-i]+unescape('%0D%0A')}

for (i=1;i<=rows;i++){

rle=rle+lr[spc*2-i]+unescape('%0D%0A')}



var c=1;

var i=ll;

var j=0;

var f=0;





function lgf(){

if(stop==false){

if(i>ll){j=0;i=i-2};

if(i==0&&j==0){c++;j=1};

if(j!=0){document.F.D.value=lg[i]+unescape('%0D%0A')+document.F.D.value;i++}

if(j==0){document.F.D.value=lg[i]+unescape('%0D%0A')+document.F.D.value;i--}

if(c<=times){setTimeout("lgf()",speed)}else{document.F.D.value=lge;i=0;j=0;c=0;t()}

}

}





function t(){

if(stop==false){

if(i>l){i=1};

document.F.D.value=lb[i]+unescape('%0D%0A')+document.F.D.value;i++;j++

if(j<=l*times){setTimeout("t()",speed)}else{document.F.D.value=lbe;i=0;j=0;rl()}

}

}



function rl(){

if (stop==false){

if(i>=spc*2){i=0};

document.F.D.value=lr[i]+unescape('%0D%0A')+document.F.D.value;

i++;j++;

if(j<len*times){setTimeout("rl()",speed)}else{document.F.D.value=rle;i=ll-1;j=0;trans()}

}}



function trans(){

if(stop==false){

document.F.D.value=lk[i]+unescape('%0D%0A')+document.F.D.value;i--;

if(i!=1){setTimeout("trans()",speed)}else{i=ll;lgf()}

}}



function stopstart(){

stopped=stop;

if(stopped==false){stop=true;document.F.SS.value=startvalue}

if(stopped==true){stop=false;document.F.SS.value=stopbuttonvalue;document.F.D.value="";i=11;j=0;c=0;lgf()}

}





if (rows>spc||rows>ll){alert("ERROR!\nrows can NOT be more that spaces or message length!!!!\ndont ask why thats just the way it is.")}

if (spc+ll>cols){alert("ERROR!\ncols(coloums) can NOT be less that the message length + spacing length")}

if (rows<=spc&&rows<=ll&&spc+ll<=cols){lgf()}



</SCRIPT>


webasp.net