您好,欢迎访问一九零五行业门户网

javascript实现自动输出文本

主要利用了settimeout(),递归和string.substring();
做出的效果就像是有一个打字员在打字.
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="generator" content="editplus®"> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="description" content=""> <title>document</title> </head> <body bgcolor="#ccc" onload="printer();"> <h2>文本自动输出</h2> <br> <br> <hr width="400" color="black"> <br> <form> <textarea cols="50" rows="30" id="text" style="background-color:#ff99cc; color: #330033; cursor: default; font-family: arial; font-size: 18px" wrap=virtual></textarea> </form> </body> <script type="text/javascript"> //获取textarea对象 var text=document.getelementbyid("text"); //要输出的内容 var str=" 传统的html语言不能开发交互式的动态网页,而javascript却能很好的做到这一点。javascript是一门相当简单易学的网络化编程语言,通过把她和html语言相互结合起来,能够实现实时的动态网页特效,这给网页浏览者在浏览网页的同时也提供了某些乐趣。"; var pos=0; //利用递归和settimeout()实现文字输出 function printer(){ text.value=str.substring(0,pos)+"|"; //判断是否到达结尾.如果是则一秒后再来一遍. if(pos++>str.length){ pos=0; settimeout("printer()",1000); }else{ settimeout("printer()",50); } } </script> </html>
方法二:javascript实现打字电脑打字效果
<span id="demo"></span> <script defer> var text="javascript实现的打字效果" //预定文字 var delay=200 //文字出现的时间间隔 var i=0 //初始化变量 i function scrollit(){ //设置 id 为 demo 的对象内的文字为从变量 text 的 0 开始到 i 间的文字加"_" demo.innertext=text.slice(0,i++)+"_" if(i>text.length){ //当 i 大于 text 的文本长度时 i=0 //重设 i 为 0,使文字重新从第一个文字出现 //延时执行scrollit()函数,delay*10是为了让显示完整文字的时间长一点 settimeout("scrollit()",delay*10) } //否则在delay毫秒后再次执行scrollit()函数 else settimeout("scrollit()",delay) } scrollit() //调用scrollit()函数 </script>
方法三:
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页</title> <script language=javascript> var layers =document.layers; var style=document.all; var both=layers||style; var idme=908601; if(layers) { layerref='document.layers';styleref ='';} if(style) { layerref='document.all';styleref = '.style';} //开始参数的定义 function writeontext(obj,str) { if(layers)with(document[obj]) { document.open();document.write(str);document.close();} if(style)eval(obj+'.innerhtml=str'); } var dispstr=new array("证监会称将严查利用内幕信息牟取不当利益行为!"); //要出现的文本 var overme=0; //逐字显示的方法 function txttyper(str,idx,objid,objstyle,color1,color2,delay,plysnd) { var mystr='',strchar=''; var skip=200; if (both && idx<=str.length) { if (str.charat(idx)=='<'){ while(str.charat(idx)!='>') idx++;} if (str.charat(idx)=='&'&&str.charat(idx+1)!=' '){ while (str.charat(idx)!= ';')idx++;} mystr = str.slice(0,idx); //返回数组从开始到指定位置的字符串 strchar = str.charat(idx++);//当前地址的字符 if (overme==0 && plysnd==1) { //针对浏览器的不同,调用不同的显示方法 if (navigator.plugins[0]){ if(navigator.plugins["liveaudio"][0].type=="audio/basic" && navigator.javaenabled()) {document.embeds[0].stop(); settimeout("document.embeds[0].play(false)",100);} } else if (document.all){ ding.stop(); settimeout("ding.run()",100);} overme=1;}else overme=0; writeontext(objid, "<span class="+objstyle+"><font color='"+color1+"'>"+mystr+"</font><font color='"+color2 +"'>"+strchar+"</font></span>"); settimeout("txttyper('"+str+"', "+idx+", '"+objid+"', '"+objstyle+"', '"+color1+"', '"+color2+"', "+delay+" ,"+plysnd+")",delay);}} function init() {txttyper(dispstr[0], 0, 'div1', 'style1', '#66ccbb', '#000000', 400, 0);} </script> <body onload=init()> <div class=style1 id=div1></div> </body> </html>
更多javascript实现自动输出文本。
其它类似信息

推荐信息