<html>
<head>
<title>One by one</title>
<script language="javascript">
function MArray()
{
this.length=MArray.arguments.length
for(var i=0;i<this.length;i++)
this[i+1]=MArray.arguments[i]
}
var fArray=new MArray;
fArray[0]="你好,欢迎查看我的网页^_^"
fArray[1]="From TB"
var x=1
var y=0
function newsSee()
{
if(x==msgl.length+1)
{
y+=1
if(y>3)
y=0
document.froml.news2.value=" "
msgl=fArray[y];
x=0
}
document.forml.news2.value=msgl.substring(0,x)
x+=1
setTimeOut("newsSee()",100)
}
</script>
</head>
<body onLoad="newsSee()">
<form name="forml">
<p align="center">
<input type="text" name="news2" size="40" >
</p>
</form>
</body>
</html>
正常的应该出现逐字出现的效果啊~
帮忙检查一下~
你这个代码,是自己写的? 还是哪里复制来的。。
问题很多。。
首先不说这段代码能不能实现什么效果。。就有以下问题
1. 首先是分号问题,虽然 JS 不要求每句后面都带分号。。但是如果你不带分号的话。 看起来就会很乱。
比如这里
if(y>3)
y=0
document.froml.news2.value=" "
msgl=fArray[y];
这个 if(y>3) 的范围在哪里? 就会看得很模糊
所以,分号一定要带!
2. 函数名大小写问题。。。 setTimeOut("newsSee()",100) 这句。。 是 setTimeout 函数,不是setTimeOut ..
3. 变量定义问题。。 msgl 这个变量 好像没有声明
4. MArray 这个是 ? JS 里,直接Array 就可以了额。。 为什么还要自己定义一个Array ?
写了个代码,可以实现你想要的效果,代码如下,自己去体会一下吧
<html>
<head>
<title>One by one</title>
<script type="text/javascript">
var fArray=["你好,欢迎查看我的网页^_^","From TB"];
var pointer=0;
var tmpstr=0;
var numbers=0;
function toolmao_com(){
setInterval(function(){
if(numbers==0){
tmpstr=fArray[pointer];
}
if(++numbers>tmpstr.length){
pointer++;
numbers=0;
}
if(pointer>=fArray.length){
pointer=0;
}
var o=document.forml.news2;
o.value=tmpstr.substring(0,numbers);
},100);
}
</script>
</head>
<body onLoad="toolmao_com()">
<form name="forml">
<p align="center">
<input type="text" name="news2" size="40" >
</p>
</form>
</body>
</html>
你看下面这个函数,msgl是什么东西,你在哪里定义的啊
function newsSee()
{
if(x==msgl.length+1)
{
y+=1
if(y>3)
y=0
document.froml.news2.value=" "
msgl=fArray[y];
x=0
}
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!