Starfield - Viagem Espacial


Para conseguir um efeito de espaço 3D, como neste exemplo, faça o seguinte:

Abra uma nova mensagem e clique em "Origem". Apague tudo o que encontrar e cole o seguinte código:

----------------------------------------------------------------------------------------------------------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#000000>
<SCRIPT language=JavaScript>
<!-- Starfield - Kurt Grigg - http://www.btinternet.com/~kurt.grigg/javascript

n=20;// Number of stars!
n4=(document.layers);
ie=(document.all);

for (i=0; i < n; i++){
if (n4)
document.write("<layer name='stars"+i+"' top=0 left=0 bgcolor=#ffffff width=1 height=1></layer>");
else
document.write('<div id="stars'+i+'" style="position:absolute;width:1px;height:1px;background:#ffffff;font-size:1px">.</div>');
}

h=0;
w=0;
cy=0;
cx=0;

y=new Array();
x=new Array();
iy=new Array();
ix=new Array();
dir=new Array();
v=new Array();
ds=new Array();
ac=new Array();

for (i=0; i < n; i++){
iy[i]=Math.random()*h;
ix[i]=Math.random()*w;
y[i]=iy[i];
x[i]=ix[i];
v[i]=1.3;
ac[i]=0;
ds[i]=0;
}

function fly(){
h=(ie)?document.body.clientHeight:window.innerHeight;
w=(ie)?document.body.clientWidth:window.innerWidth;
sy=(ie)?document.body.scrollTop:window.pageYOffset;
sx=(ie)?document.body.scrollLeft:window.pageXOffset;
cy=Math.floor((h/2));
cx=Math.floor((w/2));
for (i=0; i < n; i++){
divs=(n4)?document.layers["stars"+i]:document.getElementById("stars"+i).style;

ay=y[i]-cy;
ax=x[i]-cx;
dir[i]=Math.atan2(ay,ax)*180/Math.PI;

v[i]+=ac[i];
v[i]+=(v[i]/10);

if (v[i] > 0.4 && v[i] < 0.5){
if (!n4){divs.fontSize=2;divs.height=2;divs.width=2}
else{divs.clip.height=2;divs.clip.width=2}
}
if (v[i] > 10){
if (!n4){divs.fontSize=2;divs.height=2;divs.width=2;}
else{divs.clip.height=2;divs.clip.width=2;}
}
if (v[i] > 20){
if (!n4){divs.fontSize=3;divs.height=3;divs.width=3}
else{divs.clip.height=3;divs.clip.width=3}
}
if (v[i] > 30){
if (!n4){divs.fontSize=5;divs.height=5;divs.width=5}
else{divs.clip.height=5;divs.clip.width=5}
}

y[i]+=v[i]*Math.sin(dir[i]*Math.PI/180);
x[i]+=v[i]*Math.cos(dir[i]*Math.PI/180);

if (y[i] < 0 || y[i] > h-Math.round(v[i]) || x[i] < 0 || x[i] > w-Math.round(v[i])){
iy[i]=Math.random()*h;
ix[i]=Math.random()*w;
y[i]=iy[i];
x[i]=ix[i];
dx=cy-y[i];
dy=cx-x[i];
ds[i]=Math.sqrt(dy*dy+dx*dx);
ac[i]+=(-(ds[i]*ds[i])+(160000))/(100000000);//?
v[i]=Math.floor(ds[i]/40);
if (!n4){divs.fontSize=1;divs.height=1;divs.width=1}
else{divs.clip.height=1;divs.clip.width=1}
}
divs.top=y[i]+sy;
divs.left=x[i]+sx;
}
setTimeout('fly()',10);
}
fly();
// -->
</SCRIPT>
</BODY></HTML>

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Se você quiser alterar a cor do fundo, basta substituir o código de cor que deixei marcado em vermelho (mas tome cuidado, porque se você usar uma cor clara, o efeito não irá aparecer, a menos que você altere a cor das "estrelas" (deixei marcado em cinza).

Você pode também alterar o número de estrelas ( n=20;// Number of stars! e o número de "camadas" n4=(document.layers); conseguindo diferentes efeitos.

Se quiser, pode voltar à aba "Editar" e formatar o som e um fundo (use de preferência um fundo escuro). Você poderá criar muitas variações, dependendo do fundo que escolher.

Aqui você encontra a versão prontinha para e-mail desta dica. Está zipada no formato .eml (próprio para o Outlook Express)

(Dica adaptada por Lilian Russo a partir do script desenvolvido por Kurt Grigg.)

Lilian Russo - Todos os Direitos Reservados - ©2002/2008




.