This chapter mainly introduces the typing effect that can often be seen when browsing the web. The code in this section mainly uses the onMousedown event and the event.button attribute. The main functions and usage are as follows.
• The setTimeout method, when executed, executes the expression once and only once after delaying the specified time after loading.
• The charAt method returns a character value that is located at the specified index position. The first character in the string has index 0, the second has index 1, and so on. Index values outside the valid range return an empty string.
<html> <head> <title>打字效果的文字特效</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <script language="Javascript"> var layers = document.layers; var style = document.all; var both = layers || style; var idme = 908601; if(layers) //如果不是ie浏览器 { layerRef = 'document.layers'; styleRef = ''; } if(style) //如果是ie浏览器 { layerRef = 'document.all'; styleRef = '.style'; } function writeOnText(obj, str) { //函数在页面上打印字符串 if(layers) { with(document[obj]) { document.open(); document.write(str); //write方法打印字符串 document.close(); } } if(style) eval(obj+'.innerHTML = str'); //使用innerHTML属性显示字符串 } var dispStr = new Array("phpcn"); //字符串数组 var overMe = 0; function txtTyper(str, idx, idObj, spObj, clr1,clr2, delay, plysnd) //函数:实现打字效果 { var tmp0 = tmp1 = '', skip = 100; if(both && idx <= str.length) { if(str.charAt(idx) == '<') { while(str.charAt(idx) != '>') idx++; idx++; } if(str.charAt(idx) == '&' && str.charAt(idx+1) != '') { while(str.charAt(idx) != ';') idx++; idx++; } tmp0 = str.slice(0, idx); tmp1 = 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(idObj, "<span class="+spObj+"><font color='"+clr1+"'>"+tmp0+"</font><font color='"+clr2+"'>"+tmp1+"</font></span>"); //调用writeOnText函数将字符显示在网页上 setTimeout("txtTyper('"+str+"', "+idx+", '"+idObj+"', '"+spObj+"', '"+clr1+"', '"+clr2+"', "+delay+", "+plysnd+")", delay); } } function init() { txtTyper(dispStr[0], 0, 'tt10', 'ttll', '#339933', '#99FF33', 300, 0); //调用txtTyper函数开始打字 } </script> </head> <body onLoad="init();"> <center> <h1>打字效果的文字特效</h1> <hr /> <div class="ttll" id="tt10"></div> </center> </body> </html>
After running the program, a prompt message appears on the page, and then characters appear one by one. After characters appear one by one in this way, wait until all printing is completed to stop printing.
Source program interpretation
(1) The program first creates a layer with an ID of ttl0 for easy calling later. This layer is used to display printed text.
(2) The program adds an onLoad event to the
The above is the detailed content of Introducing a special effect example using javascript to achieve text typing effect. For more information, please follow other related articles on the PHP Chinese website!