非常不错的模拟打字效果,目前仅支持纯文本、BR标签、和P标签
一个朋友急着用,所以写了这个效果,代码还有改进得地方,大家可以尝试去修改以使更简洁,然后帖出来大家一起分享
New Document
body{margin:0px;font:"宋体" 12px; background-color:#000; color:#fff}
var typer={
    container : null,
    speed : 100 ,
    innerHTML : null ,
    curpos : 0,
    interval1 : null,
    interval2 : null,
    init : function(obj,speed){
        typer.container = obj;
        if(speed)typer.speed = speed;
        typer.start();
    },
    start : function(){
        typer.innerHTML = clearSpace(typer.container.innerHTML).toLowerCase();
typer.container.innerHTML = "";
        typer.interval1 = setInterval("typer.type()",typer.speed);
    },
    type : function(){
        if(typer.curpos=typer.curpos+4){
                    if(typer.innerHTML.substring(typer.curpos,typer.curpos+4)=="
") {
                        tempStr="
";
                        typer.curpos = typer.curpos+4;
                    }else if(typer.innerHTML.substring(typer.curpos,typer.curpos+4)=="
"){
                        tempStr="
";
                        typer.curpos = typer.curpos+4;
                    }else{
                        if(typer.innerHTML.length>=typer.curpos+3 && typer.innerHTML.substring(typer.curpos,typer.curpos+3)=="
"){
                            tempStr="
";
                            typer.curpos = typer.curpos+3;
                        }else{
                            tempStr=typer.innerHTML.substring(typer.curpos,typer.curpos+1);
                            typer.curpos++;
                        }
                    }
                }else if(typer.innerHTML.length>=typer.curpos+3){
                    if(typer.innerHTML.substring(typer.curpos,typer.curpos+3)=="
"){
                        tempStr="
";
                        typer.curpos = typer.curpos+3;
                    }else{
                        tempStr=typer.innerHTML.substring(typer.curpos,typer.curpos+1);
                        typer.curpos++;
                    }
                }else{
                        tempStr=typer.innerHTML.substring(typer.curpos,typer.curpos+1);
                        typer.curpos++;
                }
                typer.container.innerHTML = typer.container.innerHTML.substring(0,typer.container.innerHTML.length-1)+tempStr;
            }
        }else{
            clearInterval(typer.interval1);
            typer.interval2 = setInterval("typer.last()",typer.speed);
        }
    },
    last : function(){
        if(typer.container.innerHTML.substring(typer.container.innerHTML.length-1)!="_")
            typer.container.innerHTML +="_";
        else
            typer.container.innerHTML = typer.container.innerHTML.substring(0,typer.container.innerHTML.length-1);
    }
}
function clearSpace(str){
    if(str!=""){
        str = str.replace(/^\s*/g,"").replace(/\s*$/g,"");
    }
    return str;
}
姓名: 冷风
Email: cityvoice@hotmail.com
籍贯: 湖南
爱好:打球,旅游,玩星际,唱歌
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
