Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Script Para Poner Efecto Nieve En El Foro

🔓 Foros cerrados y son sólo de lectura
Cerrado
Selena
Usuario/a
Mensajes: 68
Registrado: 04 Feb 2006, 04:48

Script Para Poner Efecto Nieve En El Foro

#1

Mensaje por Selena »

Bueno decir que ya he conseguido algo con la ayuda de Class, un usuario de la web de Janu, pero aún no estoy satisfecha del resultado.

Los copos caen muy lentamente y muy pocos, a pesar de haberle dado los parámetros para que caigan más rápido y más copos. Además me lo ralentiza mucho todo, al pasar por encima de los flash, éstos se paran y los gifs animados también.

Y lo que es peor, en Firefox no se ve.

Este es el código tal como lo tengo ahora, en el overall_header.tpl despues de la etiqueta <body>

La dire del foro: http://www.buenafuente.ws/Foro por si lo queréis ver.

A ver si se os ocurre como mejorarlo, o si hay algún fallo, y sobre todo que se pueda ver en Firefox.

Muchas gracias de antemano :wink:

Código: Seleccionar todo

<script>
var no = 35; // snow number
var speed = 1; // smaller number moves the snow faster
var snowflake = "images/snow.gif";

var ns4up = (document.layers) ? 1 : 0;  // browser sniffer
var ie4up = (document.all) ? 1 : 0;
var dx, xp, yp;    // coordinate and position variables
var am, stx, sty;  // amplitude and step variables
var i, doc_width = 900, doc_height = 700;
if (ns4up) {
  doc_width = self.innerWidth;
  doc_height = self.innerHeight;
} else if (ie4up) {
  doc_width = 900;
  doc_height = 700;
}
dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
for (i = 0; i < no; ++ i) {  
  dx[i] = 0;                        // set coordinate variables
  xp[i] = Math.random()*(doc_width-50);  // set position variables
  yp[i] = Math.random()*doc_height;
  am[i] = Math.random()*20;         // set amplitude variables
  stx[i] = 0.02 + Math.random()/10; // set step variables
  sty[i] = 0.7 + Math.random();     // set step variables
  if (ns4up) {                      // set layers
    if (i == 0) {
      document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
      document.write("top=\"15\" visibility=\"show\"><img src=\"");
      document.write(snowflake + "\" border=\"0\"></layer>");
    } else {
      document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
      document.write("top=\"15\" visibility=\"show\"><img src=\"");
      document.write(snowflake + "\" border=\"0\"></layer>");
    }
  } else if (ie4up) {
    if (i == 0) {
      document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
      document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
      document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
      document.write(snowflake + "\" border=\"0\"></div>");
    } else {
      document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
      document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
      document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
      document.write(snowflake + "\" border=\"0\"></div>");
    }
  }
}
function snowNS() {  // Netscape main animation function
  for (i = 0; i < no; ++ i) {  // iterate for every dot
    yp[i] += sty[i];
    if (yp[i] > doc_height-50) {
      xp[i] = Math.random()*(doc_width-am[i]-30);
      yp[i] = 0;
      stx[i] = 0.02 + Math.random()/10;
      sty[i] = 0.7 + Math.random();
      doc_width = self.innerWidth;
      doc_height = self.innerHeight;
    }
    dx[i] += stx[i];
    document.layers["dot"+i].top = yp[i];
    document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
  }
  setTimeout("snowNS()", speed);
}

function snowIE() {  // IE main animation function
  for (i = 0; i < no; ++ i) {  // iterate for every dot
    yp[i] += sty[i];
    if (yp[i] > doc_height-50) {
      xp[i] = Math.random()*(doc_width-am[i]-30);
      yp[i] = 0;
      stx[i] = 0.02 + Math.random()/10;
      sty[i] = 0.7 + Math.random();
      doc_width = document.body.clientWidth;
      doc_height = document.body.clientHeight;
    }
    dx[i] += stx[i];
    document.all["dot"+i].style.pixelTop = yp[i];
    document.all["dot"+i].style.pixelLeft = xp[i] + am[i]*Math.sin(dx[i]);
  }
  setTimeout("snowIE()", speed);
}

if (ns4up) {
  snowNS();
} else if (ie4up) {
  snowIE();
}
</script>

Avatar de Usuario
invi
Ex Staff
Mensajes: 2557
Registrado: 14 Ene 2006, 16:25
Género:
Edad: 38

Respuesta: Script Para Poner Efecto Nieve En El Foro

#2

Mensaje por invi »

Hola Selena,

Hacia tiempo que no te veía por aquí, y reconozco que hace mucho que tampoco me paso yo por buenafuente :P

Bueno, al grano, para acelerar un poco la caida de los copos de nieve, simplemente cambia este valor:

var speed = 1;

Cambia el 1, por el valor que tu quieras, 2, 3, 4, 5...

Y a lo que dices que en firefox no se vé, si se vé, yo he entrado a tu foro con firefox y me salen perfectamente, aunque es cierto que caen lentos, cambia ese valor que te digo, y ya contarás ;)
Existen dos tipos de individuos, los que saben y los que no.

Selena
Usuario/a
Mensajes: 68
Registrado: 04 Feb 2006, 04:48

Respuesta: Script Para Poner Efecto Nieve En El Foro

#3

Mensaje por Selena »

Gracias por la respuesta Invi.
Es verdad que hace tiempo que no me paso pero es que estuve casi un mes sin conexión y luego muy liada, pero aunque no escriba siempre miro vuestras novedades.

El cambio que comentas para la velocidad no es así, si te fijas al lado en el código pone (en inglés) que a menor número mayor velocidad.

De todas formas JANU me ha pasado un Script, bueno es un Mod, que va mejor que este código:

Snow Falls Reloaded
http://www.phpbbhacks.com/download/5803

Este sí funciona con ambos exploradores, pero aún hay cosas que pulir.
Por eso me imagino que habrás visto copos con Firefox, porque ya había puesto este Mod.

Bueno lo iremos puliendo hasta que quede perfecto.

Ya os contaré, por si le puede servir a alguien.

Un beso Invi! :cerveza:

Avatar de Usuario
invi
Ex Staff
Mensajes: 2557
Registrado: 14 Ene 2006, 16:25
Género:
Edad: 38

Respuesta: Script Para Poner Efecto Nieve En El Foro

#4

Mensaje por invi »

Pues sí, es cierto, creo que no conviene responder a temas en phpBB-es a estas horas.. es el momento que uno se fija menos jejejeje, menos mal que tu te has dado cuenta.. porque si no.... merezco amarilla xD

Suerte Selena! ;)
Existen dos tipos de individuos, los que saben y los que no.

Selena
Usuario/a
Mensajes: 68
Registrado: 04 Feb 2006, 04:48

Respuesta: Script Para Poner Efecto Nieve En El Foro

#5

Mensaje por Selena »

No pasa nada Invi!!!
Un lapsus lo tiene cualquiera, además lo se porque yo cometí el mismo error hasta que me di cuenta de lo que ponía. Lo lógico era que a mayor número mayor velocidad, pero no, es al reves.

Nada de tarjetas homeeeeeeee!!! :chulo:

Cerrado

Volver a “Archivo phpBB 2.0”