Foros del Web » Programando para Internet » Javascript »

Efecto nieve de Prodigy

Estas en el tema de Efecto nieve de Prodigy en el foro de Javascript en Foros del Web. hola, fijense que quise poner el efecto nieve que usan en www.prodigy.msn.com en mi pagina pero no me funciona, en Firefox solo aparece una estrella ...
  #1 (permalink)  
Antiguo 19/12/2005, 09:48
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Efecto nieve de Prodigy

hola, fijense que quise poner el efecto nieve que usan en www.prodigy.msn.com en mi pagina pero no me funciona, en Firefox solo aparece una estrella fija y en IE las estrellas se mueven muy lento, como pesadas...tome el script completo de la pagina ...(segun yo), nose si me faltaria algo:
Código:
<SCRIPT type="text/javascript">
/*Nieve callendo sin imágenes*/

// Numero de copos
var snowmax=35

// El color de los copos
var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF")

// Las fuentes de los copos
var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS")

// El caracter del copo
var snowletter="*"

// Velocidad
var sinkspeed=0.6

// Maximo de copos
var snowmaxsize=22

// Minimo de copos
var snowminsize=8

// Zona de los copos
// 1 = Toda la pantalla, 2 = Izquierda, 3 = Centro, 4 = Derecha
var snowingzone=1

var snow=new Array()
var marginbottom
var marginright
var timer
var i_snow=0
var x_mv=new Array();
var crds=new Array();
var lftrght=new Array();
var browserinfos=navigator.userAgent 
var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/)
var ns6=document.getElementById&&!document.all
var opera=browserinfos.match(/Opera/)  
var browserok=ie5||ns6||opera

function randommaker(range) {		
	rand=Math.floor(range*Math.random())
    return rand
}

function initsnow() {
	if (ie5 || opera) {
		marginbottom = document.body.clientHeight
		marginright = document.body.clientWidth
	}
	else if (ns6) {
		marginbottom = window.innerHeight
		marginright = window.innerWidth
	}
	var snowsizerange=snowmaxsize-snowminsize
	for (i=0;i<=snowmax;i++) {
		crds[i] = 0;                      
    	lftrght[i] = Math.random()*15;         
    	x_mv[i] = 0.03 + Math.random()/10;
		snow[i]=document.getElementById("s"+i)
		snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
		snow[i].size=randommaker(snowsizerange)+snowminsize
		snow[i].style.fontSize=snow[i].size
		snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
		snow[i].sink=sinkspeed*snow[i].size/5
		if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
		if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
		if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
		if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
		snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size)
		snow[i].style.left=snow[i].posx
		snow[i].style.top=snow[i].posy
	}
	movesnow()
}

function movesnow() {
	for (i=0;i<=snowmax;i++) {
		crds[i] += x_mv[i];
		snow[i].posy+=snow[i].sink
		snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]);
		snow[i].style.top=snow[i].posy
		
		if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
			if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
			if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
			if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
			if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
			snow[i].posy=0
		}
	}
	var timer=setTimeout("movesnow()",50)
}

for (i=0;i<=snowmax;i++) {
	document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>")
}
if (browserok) {
	window.onload=initsnow
}
</SCRIPT>
  #2 (permalink)  
Antiguo 21/12/2005, 04:22
Avatar de seoista  
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 1.076
Antigüedad: 20 años, 8 meses
Puntos: 59
A mí me sucede igual, en I.E. funciona bien, pero en Firefox sólo se ve una estrella (parada), en la parte superior izquierda.

Con este script, pasa exactamente igual. Bien en F.F. y un copo de nieve estático en la parte superior izquierda, con Firefox:
Código:
<script type="text/javascript">
<!-- Este y otros scripts puedes encontrarlos -->
<!-- en 'Pluralidad'-http://www.pluralidad.com/-->

// Fall v1.7a  By Maxx Blade - http://www.maxxblade.co.uk
var fallg=new Array();

// Edite y haga los cambios debajo de esta linea //
//////////////////////////////////////////////////////////////
var no=50, speed=40, slider=10, fallmax=40, wind=2;
fallg[0]=new Array("snow.gif",13,13,1);
fallg[1]=new Array("snow2.gif",13,13,1);
fallg[2]=new Array("snow3.gif",13,13,1);


//////////////////////////////////////////////////////////////////
// NO EDITE NI CAMBIE NADA DEBAJO DE ESTAS LINEAS //
//////////////////////////////////////////////////////////////////
var o=new Array(), tog=1;
var ns4 = (document.layers) ? true : false;
var ie4 = (document.all) ? true : false;
var ns6 = (document.getElementById&&!document.all) ? true : false;
if(ie4)	falllayer="document.all['gf'+i].style";
if(ns4) falllayer="document.layers['gf'+i]";
if(ns6) falllayer="document.getElementById('gf'+i).style";
function winWid(){ return (ns4||ns6) ? window.innerWidth : document.body.clientWidth; }
function winHei(){ return (ns4||ns6) ? window.innerHeight : document.body.clientHeight; }
function winOfy(){ return (ns4||ns6) ? window.pageYOffset : document.body.scrollTop; }
function togFall(){
	if (tog==1){
		clearTimeout(dofall);
		for (i = 0; i < no; i++) { with(eval(falllayer)){ top = 0; left = -500; } }
		tog=0;
	}else{
		tog=1;
		fall();
	}
}
function newobj(q,t){
	x=parseInt(Math.random()*fallg.length);
	spin = parseInt(Math.random()*slider);
	spin = (Math.random()>0.5) ? spin : -spin;
	o[q] = new Array(parseInt(Math.random()*(winWid()-slider)),-30,spin,0.02+Math.random()/10,parseInt(1+Math.random()*fallmax),fallg[x][1],fallg[x][2],fallg[x][0],fallg[x][3],0);
	if(t==1){
		if(ns4){ document.write('<layer name="gf'+q+'" left="0" top="0" visibility="show"><img src="'+o[q][7]+'" border="0"></layer>'); }
		if(ie4||ns6){ document.write('<img src="'+o[q][7]+'" border="0" id="gf'+q+'" style="POSITION: absolute; Z-INDEX: -'+q+'; VISIBILITY: visible; TOP: 0px; LEFT: 0px;">'); }
	}
	if(t==0 && !ns4){
	tem=(ie4)?document.all['gf'+q]:document.getElementById('gf'+q);
	tem.src=o[q][7];
	}
}
function fall(){
	for (i = 0; i < no; i++) {
		if((o[i][1]>winHei()-o[i][6]-10)||(o[i][0]>winWid()-slider-o[i][5])){ newobj(i,0); }
		o[i][1] += o[i][4];
		o[i][0]+=wind;
		o[i][9] += o[i][3];
		sizexy=(o[i][8]==1)?Math.sin(o[i][9]):1;
		lay=(ie4)?sizexy:parseInt(sizexy+1);
		with(eval(falllayer)){
			top = o[i][1]+winOfy();
			left = o[i][0]+o[i][2]*Math.cos(o[i][9]);
			if(!ns4){
				zIndex=lay;
				width=parseInt(((o[i][5]/4)*3)+((o[i][5]/4)*sizexy));
				height=parseInt(((o[i][6]/4)*3)+((o[i][6]/4)*sizexy));
			}
		}
	}
	dofall = setTimeout("fall()", speed);
}
for (i = 0; i < no; i++){ newobj(i,1); }
dofall = setTimeout("fall()", 100);
</script>
¿Alguna solución para que funcionen el Firefox?

Tanto sjam7 como yo, os estaremos muy agradecido .

Gracias
__________________
· No contesto por M.P.

Última edición por seoista; 21/12/2005 a las 04:38
  #3 (permalink)  
Antiguo 21/12/2005, 07:10
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
No es por fastidiar, pero yo con firefox veo la nieve caer.
¿seguro que no es por la version del F.F.?(tengo la 1.0.7).


Y el script de seoista, tambien lo veo.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #4 (permalink)  
Antiguo 23/12/2005, 00:26
Avatar de seoista  
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 1.076
Antigüedad: 20 años, 8 meses
Puntos: 59
Cita:
Iniciado por Bytevamp
No es por fastidiar, pero yo con firefox veo la nieve caer.
¿seguro que no es por la version del F.F.?(tengo la 1.0.7).

Y el script de seoista, tambien lo veo.
Gracias Bytevamp

¡Pero es raro! Yo tengo F.F. 1.5 y no se ve bien, queda estático el copo de nieve.
Probaré con F.F. 1.0.7 y te diré si funciona bien.
__________________
· No contesto por M.P.

Última edición por seoista; 23/12/2005 a las 01:41
  #5 (permalink)  
Antiguo 23/12/2005, 01:36
Avatar de seoista  
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 1.076
Antigüedad: 20 años, 8 meses
Puntos: 59
Lo he probado con Firefox 1.0.7 y me sucede igual, o sea, el copo de nieve se queda estático en la parte superior izquierda de la página.

¡¡¡ No lo entiendo !!!

Aquí lo señalo con un cuadro en rojo:

¿Alguna solución?
__________________
· No contesto por M.P.

Última edición por seoista; 23/12/2005 a las 01:58
  #6 (permalink)  
Antiguo 23/12/2005, 02:51
 
Fecha de Ingreso: abril-2004
Mensajes: 18
Antigüedad: 20 años
Puntos: 1
Buenas,

Coincido con Bytevamp, utilizo firefox 1.5 y veo el efecto de la nieve perfectamente.

Salu2
  #7 (permalink)  
Antiguo 23/12/2005, 03:58
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Oooops, tengo noticias de ultima hora respecto a la visualizacion, y son malas para sioista, lo de prodigy lo veo perfectamente en el FF, pero la otra pagina(alsapa)no, estuve revisando ambos codigos, a ver si el error estaba en algo ahi, pero nada, excepto por el valor asignado a ciertas variables, y que esta en archivo aparte, el codigo es identico, ahora si que tambien yo estoy perdido.

¿por que no pruebas con el codigo identico?, por curiosidad, y despues vas cambiando poco a poco, a ver si asi.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #8 (permalink)  
Antiguo 23/12/2005, 06:59
Avatar de seoista  
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 1.076
Antigüedad: 20 años, 8 meses
Puntos: 59
Nada, ni podiendo el código en *.js, ni poniendo el código entero en la página me funciona en Firefox.

¿Serán los duendes de la Navidad?

Bueno, lo quitaré, no me gusta como queda en Firefox.

Muchas gracias Bytevamp, maver, y ... Muchas Felicidades a ambos.
__________________
· No contesto por M.P.
  #9 (permalink)  
Antiguo 23/12/2005, 08:19
Avatar de JALF  
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 19 años, 7 meses
Puntos: 2
Pues........
la verdad es que tengo FireFox 1.5 y funciona a toda maquina, nada de errores, funciona bien!!!
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-
  #10 (permalink)  
Antiguo 23/12/2005, 09:20
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
JE!!. salvo que esté , pero en FF1.0.7 y Opera 8.5 funciona bien(el primer codigo).

Siento confundirlos mas!!!
__________________
by Capitán Buscapina
.
  #11 (permalink)  
Antiguo 23/12/2005, 09:44
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
A mi me anda con FF 1.5

Quiero notar que las dos (únicas) veces que lo ejecuté con IE se me reinició la PC................................................ . ni yo lo creo
  #12 (permalink)  
Antiguo 24/12/2005, 17:03
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
a mi me funciona en la pagina de prodigy pero en la mia no, y uso el FF1.5 en ambas
  #13 (permalink)  
Antiguo 26/12/2005, 02:35
Avatar de seoista  
Fecha de Ingreso: septiembre-2003
Ubicación: Pues leyéndote
Mensajes: 1.076
Antigüedad: 20 años, 8 meses
Puntos: 59
Cita:
Iniciado por sjam7
a mi me funciona en la pagina de prodigy pero en la mia no, y uso el FF1.5 en ambas
I D E M.
__________________
· No contesto por M.P.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:05.