JavaScript Copos De Nieve En El Blog



Se acercan la navidad y hay algunos bloggers que gustan de poner a tono sus blogs, pues una forma bastante interesante de hacerlo es agregar el efecto de copos de nieve cayendo desde lo alto de la pantalla cuando entren a sus blogs.

Me encontré con uno bastante interesante, pueden ver una demostración en la web de Dinamic Drive, la configuración y su implementación es bastante simple, basta con agregar el siguiente código en alguna parte del código de nuestra web, antes de cerrarse la etiqueta «</body>«, veamos..

<script type=»text/javascript»>

/******************************************
* Snow Effect Script- By Altan d.o.o. (http://www.altan.hr/snow/index.html)
* Visit Dynamic Drive DHTML code library (http://www.dynamicdrive.com/) for full source code
* Last updated Nov 9th, 05′ by DD. This notice must stay intact for use
* Algunos Cambios Al Español Por Julian Bohorquez (http://www.juarbo.com/) 19/11/2009
******************************************/

//Configure la siguiente linea para cambiar la imagen del copo de nieve
var snowsrc=»http://www.dynamicdrive.com/dynamicindex3/snow.gif»
// Configure el numero de elementos en la pantalla
var no = 10;
// Configure si queremos que los copos desaparezcan despues de cierto tiempo (0=never):
var hidesnowtime = 0;
// Configure how much snow should drop down before fading («windowheight» or «pageheight»)
var snowdistance = «pageheight»;

///////////Stop Config//////////////////////////////////

var ie4up = (document.all) ? 1 : 0;
var ns6up = (document.getElementById&&!document.all) ? 1 : 0;

function iecompattest(){
return (document.compatMode && document.compatMode!=»BackCompat»)? document.documentElement : document.body
}

var dx, xp, yp;    // coordinate and position variables
var am, stx, sty;  // amplitude and step variables
var i, doc_width = 800, doc_height = 600;

if (ns6up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = iecompattest().clientWidth;
doc_height = iecompattest().clientHeight;
}

dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
snowsrc=(snowsrc.indexOf(«dynamicdrive.com»)!=-1)? «http://www.dynamicdrive.com/dynamicindex3/snow.gif» : snowsrc
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 (ie4up||ns6up) {
if (i == 0) {
document.write(«<div id=\»dot»+ i +»\» style=\»POSITION: absolute; Z-INDEX: «+ i +»; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\»><a href=\»http://dynamicdrive.com\»><img src='»+snowsrc+»‘ border=\»0\»><\/a><\/div>»);
} else {
document.write(«<div id=\»dot»+ i +»\» style=\»POSITION: absolute; Z-INDEX: «+ i +»; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\»><img src='»+snowsrc+»‘ border=\»0\»><\/div>»);
}
}
}

function snowIE_NS6() {  // IE and NS6 main animation function
doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
doc_height=(window.innerHeight && snowdistance==»windowheight»)? window.innerHeight : (ie4up && snowdistance==»windowheight»)?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance==»pageheight»)? iecompattest().scrollHeight : iecompattest().offsetHeight;
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();
}
dx[i] += stx[i];
document.getElementById(«dot»+i).style.top=yp[i]+»px»;
document.getElementById(«dot»+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+»px»;
}
snowtimer=setTimeout(«snowIE_NS6()», 10);
}

function hidesnow(){
if (window.snowtimer) clearTimeout(snowtimer)
for (i=0; i<no; i++) document.getElementById(«dot»+i).style.visibility=»hidden»
}

if (ie4up||ns6up){
snowIE_NS6();
if (hidesnowtime>0)
setTimeout(«hidesnow()», hidesnowtime*1000)
}

</script>

También si nos la ingeniamos un poco podemos editar este código, la edición mas simple es cambiar la imagen del copo de nieve que se encuentra en la linea que dice:

var snowsrc="http://www.dynamicdrive.com/dynamicindex3/snow.gif"

y reemplazamos el «http://www.dynamicdrive.com/dynamicindex3/snow.gif» por la imagen que queremos usar, voy a dejar tres ejemplos de imagen a continuación para que copien la url y la pequen en el código si es que quieren cambiarlo, aunque me parece que el modelo que viene por defecto es el mas bonito 🙂

Bola De Nieve
Bola De Nieve
Bola De Nieve

Si tienen preguntas ya saben que pueden dejar sus comentarios 😉

One thought on “JavaScript Copos De Nieve En El Blog

  1. Al pegar el codigo, me sale un error:

    «Por favor, corrige el siguiente error y envía la plantilla de nuevo.
    No se ha podido analizar su plantilla, porque no está bien formada. Asegúrese de que todos los elementos XML se han cerrado correctamente.
    Mensaje de error de XML: The entity name must immediately follow the ‘&’ in the entity reference.»

    Qué es lo k m falla?
    Inako.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *