+ -
当前位置:首页 → 问答吧 → js实现小鱼吐泡泡在页面游动特效

js实现小鱼吐泡泡在页面游动特效

时间:2008-09-22

来源:互联网

非常逼真的用js写的,在页面中有一条游动的吐泡泡小鱼,对于爱好海洋类的个人网站,加这个效果蛮漂亮的



<html>

<head>

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">

<title>js小鱼吐泡泡在页面游动</title>

</head>



<body onLoad=\"Start()\">

<script language=\"JavaScript\">

<!--

Image0=new Image();

Image0.src=\"http://img.jb51.net/images/fish/paopao.gif\";

Amount=12;

Pics=new Array();

Load=new Array();

Ypos=new Array();

Xpos=new Array();

Speed=new Array();

Rate=new Array();

Grow=new Array();

Step=new Array();

Cstep=new Array();

NsSize=new Array();

Ns=(document.layers)?1:0;

Pos=-1;

Jog=1;

Timer=null;

for(i=0; i <= 6; i++){

Pics=\"http://img.jb51.net/images/fish/fish\"+i+\".gif\";

}

function PreLoad(){

for(i=0; i < Pics.length; i++){

Load=new Image();

Load.src=Pics;

}

}

PreLoad();

Strt=0-(Load[0].width+50);

function AniFish(){

Pos+=Jog;

if (Pos >= Pics.length) Pos=0;

if (Ns) document.nfish.document.images.nframe.src=Pics[Pos];

else document.images.iframe.src=Pics[Pos];

Timer=setTimeout('AniFish()',50)

}

function MoveFish(){

H=(document.layers)?window.innerHeight+window.pageYOffset:window.document.body.clientHeight+document.body.scrollTop;

W=(document.layers)?window.innerWidth+window.pageXOffset:window.document.body.clientWidth+document.body.scrollLeft;

Strt-=2;

if (Strt < 0-(Load[0].width)) Strt=W;

if (Ns){document.nfish.left=Strt;document.nfish.top=H-(Load[0].height+10)}

else {ifish.style.left=Strt;ifish.style.top=H-(Load[0].height+10)}

setTimeout('MoveFish()',10)

}

H2=(document.layers)?window.innerHeight:window.document.body.clientHeight;

for (i=0; i < Amount; i++){

Ypos=Math.random()*H2-50;

Xpos=-50;

Speed=Math.random()*10+1;

Cstep=0;

Step=Math.random()*0.1+0.05;

Grow=4;

NsSize=Math.random()*4+6;

Rate=Math.random()*0.5+0.1;

}

if (Ns){

for (i = 0; i < Amount; i++){

document.write(\"<layer name='sn\"+i+\"' left=0 top=-50><img src=\"+Image0.src+\" name='N' width=\"+NsSize+\" height=\"+NsSize+\"></layer>\");

}

document.write(\"<layer name='nfish' left=0 top=-50><img src='0.gif' name='nframe'></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=\"si\" src=\"'+Image0.src+'\" style=\"position:absolute;top:-100px;left:0px;filter:alpha(opacity=90)\">');

}

document.write('</div></div>');

document.write('<div style=\"position:absolute;top:0px;left:0px\"><div style=\"position:relative\">'

+'<img id=\"ifish\" src=\"0.gif\" name=\"iframe\" style=\"position:absolute;top:-100px;left:0px\"></div></div>');

}

function Bubbles(){

Hs=(document.layers)?window.pageYOffset:document.body.scrollTop;

Ws=(document.layers)?window.pageXOffset:document.body.scrollLeft;

for (i=0; i < Amount; i++){

sy = Speed*Math.sin(270*Math.PI/180);

sx = Speed*Math.cos(Cstep*5);

Ypos+=sy;

Xpos+=sx;

if (Ypos < -40){

if (Ns) {Ypos=document.nfish.top;Xpos=document.nfish.left}

else {Ypos=ifish.style.pixelTop;Xpos=ifish.style.pixelLeft}

Speed= 6+Math.random()*3;

Grow=4;

NsSize=Math.random()*4+6;

}

if (Ns){

document.layers['sn'+i].left=Xpos+Ws;

document.layers['sn'+i].top=Ypos+Hs;

}

else{

si.style.pixelLeft=Xpos+Ws;

si.style.pixelTop=Ypos+Hs;

si.style.width=Grow;

si.style.height=Grow;

}

Grow+=Rate;

Cstep+=Step;

if (Grow > 15) Grow=16;

}

setTimeout('Bubbles()',10);

}

function Start(){

AniFish();

MoveFish();

Bubbles();

}

//-->

</script>

</body>



</html>

作者: 淡水   发布时间: 2008-09-22