javascript實(shí)現(xiàn)自動(dòng)輸出文本(打字特效)
主要利用了setTimeout(),遞歸和String.substring();
做出的效果就像是有一個(gè)打字員在打字.
<!doctype html> <html lang="en"> <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 align="center">文本自動(dòng)輸出</h2> <br> <br> <hr width="400" color="black"> <br> <form align="center"> <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對(duì)象 var text=document.getElementById("text"); //要輸出的內(nèi)容 var str=" 傳統(tǒng)的HTML語(yǔ)言不能開(kāi)發(fā)交互式的動(dòng)態(tài)網(wǎng)頁(yè),而JavaScript卻能很好的做到這一點(diǎn)。JavaScript是一門相當(dāng)簡(jiǎn)單易學(xué)的網(wǎng)絡(luò)化編程語(yǔ)言,通過(guò)把她和HTML語(yǔ)言相互結(jié)合起來(lái),能夠?qū)崿F(xiàn)實(shí)時(shí)的動(dòng)態(tài)網(wǎng)頁(yè)特效,這給網(wǎng)頁(yè)瀏覽者在瀏覽網(wǎng)頁(yè)的同時(shí)也提供了某些樂(lè)趣。"; var pos=0; //利用遞歸和setTimeout()實(shí)現(xiàn)文字輸出 function printer(){ text.value=str.substring(0,pos)+"|"; //判斷是否到達(dá)結(jié)尾.如果是則一秒后再來(lái)一遍. if(pos++>str.length){ pos=0; setTimeout("printer()",1000); }else{ setTimeout("printer()",50); } } </script> </html>
方法二:JavaScript實(shí)現(xiàn)打字電腦打字效果
<span id="demo"></span> <script defer> var text="JavaScript實(shí)現(xiàn)的打字效果" //預(yù)定文字 var delay=200 //文字出現(xiàn)的時(shí)間間隔 var i=0 //初始化變量 i function scrollit(){ //設(shè)置 id 為 demo 的對(duì)象內(nèi)的文字為從變量 text 的 0 開(kāi)始到 i 間的文字加"_" demo.innerText=text.slice(0,i++)+"_" if(i>text.length){ //當(dāng) i 大于 text 的文本長(zhǎng)度時(shí) i=0 //重設(shè) i 為 0,使文字重新從第一個(gè)文字出現(xiàn) //延時(shí)執(zhí)行scrollit()函數(shù),delay*10是為了讓顯示完整文字的時(shí)間長(zhǎng)一點(diǎn) setTimeout("scrollit()",delay*10) } //否則在delay毫秒后再次執(zhí)行scrollit()函數(shù) else setTimeout("scrollit()",delay) } scrollit() //調(diào)用scrollit()函數(shù) </script>
方法三:
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>標(biāo)題頁(yè)</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';} //開(kāi)始參數(shù)的定義 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("證監(jiān)會(huì)稱將嚴(yán)查利用內(nèi)幕信息牟取不當(dāng)利益行為!"); //要出現(xiàn)的文本 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); //返回?cái)?shù)組從開(kāi)始到指定位置的字符串 strchar = str.charAt(idx++);//當(dāng)前地址的字符 if (overMe==0 && plysnd==1) { //針對(duì)瀏覽器的不同,調(diào)用不同的顯示方法 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>
相關(guān)文章
原生JS實(shí)現(xiàn)輪播效果+學(xué)前端的感受(防止走火入魔)
下面小編就為大家?guī)?lái)一篇原生JS實(shí)現(xiàn)輪播效果+學(xué)前端的感受(防止走火入魔)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08JavaScript開(kāi)發(fā)Chrome瀏覽器擴(kuò)展程序UI的教程
Chrome擴(kuò)展開(kāi)發(fā)API中提供了一些關(guān)于UI外觀的操作,如果是剛剛上手的話首先需要了解Browser Actions、Omnibox、選項(xiàng)頁(yè)等,在這篇JavaScript開(kāi)發(fā)Chrome瀏覽器擴(kuò)展程序UI的教程中,我們先來(lái)回顧一下基本知識(shí):2016-05-05JS中類的靜態(tài)方法,靜態(tài)變量,實(shí)例方法,實(shí)例變量區(qū)別與用法實(shí)例分析
這篇文章主要介紹了JS中類的靜態(tài)方法,靜態(tài)變量,實(shí)例方法,實(shí)例變量區(qū)別與用法,結(jié)合實(shí)例形式詳細(xì)分析了JS中類的靜態(tài)方法,靜態(tài)變量,實(shí)例方法,實(shí)例變量相關(guān)功能、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03javascript中call,apply,bind函數(shù)用法示例
這篇文章主要介紹了javascript中call,apply,bind函數(shù)用法,結(jié)合實(shí)例形式分析了call,apply,bind函數(shù)的功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-12-12Yii2使用Bootbox插件實(shí)現(xiàn)自定義彈窗
Bootbox.js 是一個(gè)小型的 JavaScript 庫(kù)用來(lái)創(chuàng)建簡(jiǎn)單的可編程對(duì)話框,基于 Twitter 的 Bootstrap 開(kāi)發(fā)。今天我們就來(lái)研究下,如何使用bootbox插件來(lái)實(shí)現(xiàn)自定義彈窗。2015-04-04