一段文字,每个字都在不停地变换着颜色,不停地改变大小且不停地变换位置,像一个个活泼可爱的小精灵。若是在网页上放上具有这种效果的一段文字,会使整个页面充满生气。当然,用动画做这种效果是不成问题的,但用Javascript来做要瘦小的多。下图是抓取的跳动文字瞬间图:
图1
制作方法:
1、先插入一个1*n表格,这里的n就是要跳动的文字数,把表格的高度定义为70px,实际上表格高度的设定原则是要大于最大的跳动文字。否则在文字跳动时,整个页面都在抖动。然后把文字写入表格中,每个单元格写一个字,由于要在程序中对每个字的属性进行操作,所以还要用<span>标记把字括起来,并给它取一个名字(在本例中是a1、a2、a3......a6),没有名字,程序无法操作。本例的文字部分代码如下:
<table width="90%" height="60" border="0"
>
<tr >
<td><span id="a1">赛</span></td>
<td><span id="a2">迪</span></td>
<td><span id="a3">互</span></td>
<td><span id="a4">动</span></td>
<td><span id="a5">学</span></td>
<td><span id="a6">校</span></td>
</tr>
</table>
2、在<head>与</head>之间插入下面这段程序。程序思路:用Javascript的数学对象中的random()方法,产生一个0-1之间的随机数,并用这个随机数通过运算,获得一个在一定范围内的随机数,用这个数作为文字的颜色、大小的属性值,再用一个定时函数不断地刷新,从而获得预期效果。下面是程序源代码:
<script languae="JavaScript">
<!--
function movetext(){
document.all.a1.style.fontSize=16+Math.floor(Math.random()*24);
//改变字大小
document.all.a1.style.lineHeight=1.2; //行高取文字的1.2倍。
c1=Math.floor(Math.random()*256);
c2=Math.floor(Math.random()*256);
c3=Math.floor(Math.random()*256);
document.all.a1.style.color="rgb("+c1+","+c2+","+c3+")";
//改变文字的颜色。
document.all.a2.style.fontSize=16+Math.floor(Math.random()*24);
document.all.a2.style.lineHeight=1.2;
document.all.a2.style.color="rgb("+c2+","+c1+","+c3+")";
document.all.a3.style.fontSize=16+Math.floor(Math.random()*24);
document.all.a3.style.lineHeight=1.2;
document.all.a3.style.color="rgb("+c3+","+c2+","+c1+")";
document.all.a4.style.fontSize=16+Math.floor(Math.random()*24);
document.all.a4.style.lineHeight=1.2;
document.all.a4.style.color="rgb("+c2+","+c3+","+c1+")";
document.all.a5.style.fontSize=16+Math.floor(Math.random()*24);
document.all.a5.style.lineHeight=1.2;
document.all.a5.style.color="rgb("+c1+","+c3+","+c2+")";
document.all.a6.style.fontSize=16+Math.floor(Math.random()*24);
document.all.a6.style.lineHeight=1.2;
document.all.a6.style.color="rgb("+c3+","+c2+","+c1+")";
timer=setTimeout("movetext()",300); //每300毫秒刷新一次。
}
-->
</script>
程序中的Math.random()的作用是产生一个0-1之间的随机数,那么用Math.random()*N,就可获得0-N之间的随机浮点数;Math.floor的作用是对括号内的数取一个比它小的最大整数,通过Math.floor
(Math.random()*N组合,可以获得0-(N-1)之间的随机数,在本例中通过Math.floor(Math.random()*24,获得一个0-23之间的随机整数,Math.floor(Math.random()*256)可获得一个0-255之间的随机整数。这段程序比较简单,不再多作解释了。注:本例中各文字的颜色是通过改变三种颜色数值(c1、c2、c3)的顺序来达到每个文字产生随机颜色。当然也可以仿照本例中第一个文字那样用随机数来产生,但要增加不少运算工作量和代码。
3、在<body>标记中加入 onload="movetext()",以便这段文字在网页载入时,就跳动起来。
通过本文的例子,你看用Javascript改变文字的属性多么简单,要牢记的是:在javascript中要对哪个元素操作,必须要有“名字”,也就是ID号。要产生动态效果,setTimeout(function,value)不可少。
另外请注意:上面的程序只能在IE中正常运行,若要在NS中正常运行,则必须改写,具体修改方法是把document.all.a1.style.改为document.layers["a1"].,其它语句仿此修改。