非常不错的模拟打字效果,目前仅支持纯文本、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需刷新才能执行]