在工作中,因为一个显示问题,做出了一个通过JS来控制文本内容的闪烁,觉得还挺有意思,所以写出来共亨一下,通过理解了其中的道理之后,就仅可以用它来进行文本内容的闪烁,还可以进行其它的闪烁控制,主要是通过定时对DIV中的元素进行操作来实现的。要用到的函数有三个,分别是:setInterVal(),setTimeout(),clearInterVal()。下面分别说一下这三个函数的使用,当然你可以查阅对应的函数的详细API说明,我这里只对其做一个平常项目中如何使用。
setInterVal()函数为设置定时器,它有两个参数,第二个参数为定时的时间间隔,以毫秒为单位,而第一个参数则为定时器时刻到达后,要让JS调用的函数名,该函数有个返回值,我叫它定时器句柄,当你调用这个函数时,如果成功进行定时,则会返回这样一个定时器句柄的,当我们拿到了这个句柄,就可以对它进行操作了,比如消除定时器,当你运行定时器达到你想要的效果后,不想再定时了,就可以将其删除掉。它的使用示例如下:
var si = setInterVal(“testTime()”,1000);//定时器间隔为1000毫秒,执行函数为:testTime()。
setTimeout()函数也是一个定时器,它与setInterVal()的区别在于调用这个函数时,它只执行一次,执行完了,该定时器将自动消失。下面为其示例代码:
var si = setTimeout (“testTime()”,1000);//定时器间隔为1000毫秒,执行函数为:testTime(),1000毫秒到之后,将执行一次testTime()函数,然后定时器消失。
clearInterVal()函数用来删除掉定时器,从前面的两个API看来,由于setTimeout函数通常会在自身调用一次后消失掉,所以,通过用该函数来删除setInterVal()函数。下面为其示例代码:
var si = setInterVal(“testTime()”,1000);//定时器间隔为1000毫秒,执行函数为:testTime()。
clearInterVal(si);//删除对应的定时器,使其功能消失。
下面是一个简单的显示文本内容闪烁的示例,里面也进行了注释:
文件名:testText.html
文件内容:
<html>
<head>
<title>文本闪烁</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="JavaScript" type="text/javascript">
var sh;//定时器
var num=0;
sh = setInterval("testT()",1000);//设置定时器,此处定时每1秒钟都会调用testT()函数
//定时器执行函数
function testT()
{
document.all.textTest.innerHTML ="<span>你好,世界!!!!</span>";//在需要文本闪烁的地方(通常为DIV)显示要闪烁的内容
setTimeout("testTA()",500);//设置定时器,但只执行一次,当调用该函数后,会在500毫秒之后执行testTA函数
}
//定时器执行函数
function testTA(msg)
{
document.all.textTest.innerHTML ="";
num = num + 1;
if(num == 4)//本处显示为闪烁次数(4次),如果去掉这里时的判断以及相应的内容,则将会一直闪烁
{
document.all.textTest.innerHTML ="<span>你好,世界!!!!</span>";
clearInterval(sh);//因为为只显示一定次数的闪烁,所以要删除对应的定时器。
}
}
</script>
</head>
<body>
<p>
<b>文字闪烁</b>
</p>
<br/>
<br/>
<div id="textTest"></div>
<br/>
<br/>
<br/>
<br/>
</body>
</html>