初学者的一个小问题javascript的
<script type= "text/javascript ">
<!--
var Message = "^_^欢迎光临我们的网站 ";
var spacenum = 50;
FlyIn(spacenum,0)
function FlyIn(num,now)
{
var out = " ";
for(var i=0;i <now;i++)
{
out += Message.charAt(i);
}
for(var i=1;i <num;i++)
{
out += " ";
}
out += Message.charAt(now);
window.status = out;
if(num <= 1)
{
now++;
if(Message.charAt(now) == " ")
{
now++;
}
num = spacenum - now;
}
else
{
num--;
}
if(now != Message.length + 1) //为什么这里加1才可以正常运行
{
var cmd = "FlyIn( "+ num + ", "+ now + ") ";
window.setTimeout(cmd,20);
}
else
{
window.status = " ";
num = 0;
now = 0;
var cmd = "FlyIn( "+ num + ", "+ now + ") ";
window.setTimeout(cmd,20);
}
}
//-->
</script>
[解决办法]
大体上看了一下,好像是一个动态的显示状态栏的一个效果,就是(20/1000)s来从无到有在状态栏显示[^_^欢迎光临我们的网站]这个信息,其实你可以看到now是永远小于等于message.length的,之所以!=Message.length + 1其实就是 <= Message.length.就是说显示的状态还没有完(Message完全显示),则继续在num 和 now 的基础上动态显示剩下的信息.当now等于Message.length + 1 的时候证明显示完了,从头再来