一个挺简单的网页特效:JS让网页上文字出现键盘打字的打字效果实现
演示地址:http://codepen.io/guihailiuli/pen/jPOYMZ
以代码形式实现过程分析:
<html> <head> <title>打字效果</title> <meta http-equiv="Content-Type" Content="text/html;charset=gb2312" /> <style type="text/css"> body{ font-size:14px; font-color:#purple; font-weight:bolder; } </style> </head> <body> 最新内容: <a id = "Hotnews" href="" target="_blank"> </a> <script language="javascript"> var NewsTime = 2000; //每条信息完整出现后停留时间 var TextTime = 100; //每条信息中的字出现的间隔时间 var newsi = 0; var txti = 0; var txttimer; //调用setInterval的返回值,用于取消对函数的周期性执行 var newstimer; var newstitle = new Array(); //以数组形式保存每个信息的标题 var newshref = new Array(); //以数组形式保存信息标题的链接 newstitle[0] = "欢迎来到我的博客"; //显示在网页上的文字内容和对应的链接 newshref[0] = "http://www.cnblogs.com/guihailiuli/"; newstitle[1] = "http://www.cnblogs.com/guihailiuli/"; newshref[1] = "http://www.cnblogs.com/guihailiuli/"; newstitle[2] = "博客园欢迎你哦"; newshref[2] = "http://www.cnblogs.com"; newstitle[3] = "ByeBye~~"; newshref[3] = "http://www.cnblogs.com"; function shownew(){ hwnewstr=newstitle[newsi]; //通过newsi传递,依次显示数组中的内容 newslink=newshref[newsi]; //依次显示文字对应的链接 if(txti>=hwnewstr.length){ clearInterval(txttimer); //一旦超过要显示的文字长度,清除对shownew()的周期性调用 clearInterval(newstimer); newsi++; //显示数组中的下一个 if(newsi>=newstitle.length){ newsi = 0; //当newsi大于信息标题的数量时,把newsi清零,重新从第一个显示 } newstimer = setInterval("shownew()",NewsTime); //间隔2000ms后重新调用shownew() txti = 0; return; } clearInterval(txttimer); document.getElementById("Hotnews").href = newslink; document.getElementById("Hotnews").innerHTML = hwnewstr.substring(0,txti+1); //截取字符,从第一个字符到txti+1个字符 txti++; //文字一个个出现 txttimer = setInterval("shownew()",TextTime); } shownew(); </script> </body> </html>