JavaScript模拟打字效果

高洛峰
高洛峰 原创
2016-11-28 14:03:26 1181浏览

JavaScript可以模拟打字效果,很有创意的一个小脚本,可以用作404页面,当然也可以用在很多地方。先把需要打印的字符串预先保存到一个数组当中,然后利用setTimeout()方法每个一小段时间输出一个字符,连串起来就像打字一样的效果。


Code

<script type="text/javascript">
<!--
var tl = new Array(
    "I am so sorry, but I can't find the Page you've requested.",
    "It's possible that you entered the address incorrectly.",
    "If you did enter the address correctly, then it must be my fault.",
    "I am really, really sorry, but I've tried everything I know to find it.",
    "Nothing helped.",
    "I am really depressed about this.",
    "You see, I'm just a web server...",
    "...here I am, brain the size of the universe, trying to serve you a simple web page...",
    "And then it doesn't even exist!",
    "Where does that leave me?!",
    "I mean, I don't even know you.",
    "How should I know what you wanted from me?",
    "You honestly think I can 'guess' what someone I don't even 'know' wants to find here?",
    "",
    "Maybe I should introduce myself... my name is Marvin.",
    "But then again, what is the use of intruducing myself?",
    "You can't tell me your name, because you are in some far off place, sitting in front of your computer.",
    "And that makes me feel lonely.",
    "Do you know what that is like?",
    "",
    "...sigh...",
    "",
    "Man, I am so depressed I could just cry.",
    "And then where would we be, I ask you?",
    "It's not pretty when a web server cries.",
    "And where do you get off telling me what to show anyway?",
    "I'm just a web server...",
    "...and possibly a manic depressive one at that...",
    "So why does that give you the right to tell me what to do?",
    "Huh?",
    "",
    "I am so depressed...",
    "I think I'll crawl off into the trash can and decompose.",
    "I mean, I'm gonna be obsolete in what, two weeks anyway?",
    "What kind of a life is that?",
    "Two effing weeks...",
    "...and then I'll be replaced by a .01 release, that thinks it's God's gift to web servers,",
    "just because it doesn't have some tiddly little security hole with its HTTP POST implementation,",
    "or something like that.",
    "",
    "I'm really sorry to burden you with all this,",
    "I mean, it's not your job to listen to my problems,",
    "and I guess it is my job to go and fetch web pages for you.",
    "But I couldn't get this one.",
    "I am so sorry.",
    "Believe me!",
    "",
    "Maybe I could interest you in another page?",
    "There are a lot out there that are pretty neat, they say,",
    "although none of them were put on 'my' server, of course.",
    "Figures, huh?",
    "That makes me depressed too, since I have to serve them, all day and all night long.",
    "Two weeks of information overload, and then *pffftt*, consigned to the trash.",
    "Again I ask you, what kind of a life is that?",
    "",
    "Now, please let me sulk alone.",
    "",
    "",
    "",
    "",
    "I am so depressed.",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "<connection terminated>"
);
var speed = 50;
var index = 0; 
text_pos = 0;
var str_length = tl[0].length;
var contents, row;
  
function type_text()
{
    contents='';
    row = Math.max(0,index-7);
    while(row < index)
    {
        contents += tl[row++] + '\r\n';
    }
    //document.forms[0].elements[0].value = contents + tl[index].substring(0,text_pos) + "_";
    document.getElementById("typearea").value = contents + tl[index].substring(0,text_pos) + "_";
    if(text_pos++==str_length)
    {
        text_pos=0;
        index++;
        if(index!=tl.length)
        {
            str_length=tl[index].length;
            setTimeout("type_text()",1500);
        }
    } 
    else
        setTimeout("type_text()",speed);
}
//-->
</script> 
      
<form> 
    <textarea id="typearea" rows="20" cols="100" style="font-family:Arial; font-size:14px; "></textarea> 
</form> 
<script type="text/javascript">type_text();</script>


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。