使用提示
此例可用于二幅以上的图像。
自由移动的多幅图像
演示效果:
代码提示:按下面的说明修改并复制代码
第一步:把如下代码加入<body>区域中 <script language="JavaScript"> <!-- //修改下面的图像地址,可增加或减少图像,图像数量不得少于二幅 Pic=new Array('001s.jpg','002s.jpg','003s.jpg') //Smoothness of animation depends on the number of images and they're file size. MaxSpeed=5; MinSpeed=2; load = new Array() for(i=0; i < Pic.length; i++) { load[i] = new Image(); load[i].src = Pic[i]; } amount=Pic.length; ns=(document.layers)?1:0; if (ns){ for (i=0; i < amount; i++){ document.write("<LAYER NAME='netscape"+i+"' LEFT=0 TOP=0><img name='netpics' src="+load[i].src+"></LAYER>")} } else{ document.write("<div style='position:absolute;top:0px;left:0px'><div style='position:relative'>"); for (i=0; i < amount; i++){ document.write("<img id='explorer' src='"+load[i].src+"' style='position:absolute;top:0px;left:0px'>")} document.write("</div></div>") } VB=0; HB=0; R=new Array(); PB=new Array(); RD=new Array(); Y=new Array(); X=new Array(); D=new Array(); SP=new Array(); BY=new Array(); BX=new Array(); for (i=0; i < amount; i++){ Y[i]=10; X[i]=10; D[i]=Math.floor(Math.random()*70+10); SP[i]=Math.floor(Math.random()*MaxSpeed+MinSpeed); } function Curve(){ plusMinus=new Array(1,-1,2,-2,3,-3,0,1,-1,0,5,-5) for (i=0; i < amount; i++){ R[i]=Math.floor(Math.random()*plusMinus.length); RD[i]=plusMinus[R[i]]; } setTimeout('Curve()',1500); } function MoveRandom(){ var H=(document.layers)?window.innerHeight:document.body.clientHeight; var W=(document.layers)?window.innerWidth:document.body.clientWidth; var YS=(document.layers)?window.pageYOffset:document.body.scrollTop; var XS=(document.layers)?window.pageXOffset:document.body.scrollLeft; for (i=0; i < amount; i++){ BY[i]=-load[i].height; BX[i]=-load[i].width; PB[i]=D[i]+=RD[i]; y = SP[i]*Math.sin(PB[i]*Math.PI/180); x = SP[i]*Math.cos(PB[i]*Math.PI/180); if (D[i] < 0) D[i]+=360; Y[i]+=y; X[i]+=x; VB=180-D[i]; HB=0-D[i]; //Corner rebounds! not necessary but looks nice. if ((Y[i] < 1) && (X[i] < 1)) {Y[i]=1;X[i]=1;D[i]=45;} if ((Y[i] < 1) && (X[i] > W+BX[i])) {Y[i]=1;X[i]=W+BX[i];D[i]=135;} if ((Y[i] > H+BY[i]) && (X[i] < 1)) {Y[i]=H+BY[i];X[i]=1;D[i]=315;} if ((Y[i] > H+BY[i]) && (X[i] > W+BX[i])) {Y[i]=H+BY[i];X[i]=W+BX[i];D[i]=225;} //Edge rebounds! if (Y[i] < 1) {Y[i]=1;D[i]=HB;} if (Y[i] > H+BY[i]) {Y[i]=H+BY[i];D[i]=HB;} if (X[i] < 1) {X[i]=1;D[i]=VB;} if (X[i] > W+BX[i]) {X[i]=W+BX[i];D[i]=VB;} var layer=(document.layers)?document.layers['netscape'+i]:explorer[i].style; layer.top=Y[i]+YS; layer.left=X[i]+XS; } setTimeout('MoveRandom()',10); } function sTaRt(){Curve();MoveRandom()} //--> </script> 第二步:修改<body***>中的内容,将下面的代码加入原<body***>中 onLoad="if (document.all||document.layers) sTaRt()"
使用提示
返回目录