No me despierten
sólo estoy durmiendo ...
... hasta el lunes ... como mínimo ...
don't shake me
leave me where I am
I'm only sleeping ...
#Label1 ul li{
float: left;
width: 45%;
}
<b:widget id='Label1' locked='false' title='Etiquetas' type='Label'>
(<data:label.count/>)
(<b:if cond='data:showFreqNumbers == 0'>
entradas
<b:else/>
<b:if cond='data:label.count == 1'>
1 entrada
<b:else/>
<data:label.count/> entradas
</b:if>
</b:if>)
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.2");
</script>
<script type='text/javascript' src='URL_jquery.easing.1.3.js' />
<script type='text/javascript'>
//<![CDATA[
... aquí pegamos el contenido del archivo ...
//]]>
</script>
<script type='text/javascript'>
//<![CDATA[
$(document).ready(function() {
$("a#controlbtn").click(function(e) {
e.preventDefault();
var slidepx=$("div#linkblock").width() + 10;
if ( !$("div#maincontent").is(':animated') ) {
if (parseInt($("div#maincontent").css('marginLeft'), 10) < slidepx) {
$(this).removeClass('close').html('Ocultar');
margin = "+=" + slidepx;
} else {
$(this).addClass('close').html('Mostrar');
margin = "-=" + slidepx;
}
$("div#maincontent").animate({
marginLeft: margin
}, {
duration: 'slow',
easing: 'easeOutQuint'
});
}
});
});
//]]>
</script>
<style type='text/css'>
div#wrap { /* es el rectángulo conteendor */
margin: 0 auto;
overflow: hidden; /* esta propeidad es importante */
position: relative;
width: 100%;
}
#controlbtn { /* el área superior con Mostrar/Ocultar */
-moz-border-radius-bottomright: 20px;
-moz-border-radius-topright: 20px;
background-color: #345;
padding: 2px 10px;
}
a#controlbtn { /* el texto del enlace Mostrar/Ocultar */
color: #DEF;
display: inline-block;
padding-left: 25px;
text-decoration: none;
}
a#controlbtn.open { /* la imagen para Mostrar */
background: transparent url(URL_imagen_MENOS) no-repeat left center;
}
a#controlbtn.close { /* la imagen para Ocultar */
background: transparent url(URL_imagen_MAS) no-repeat left center;
}
div#maincontent { /* el rectángulo inferior */
margin-left: 145px;
position: relative;
}
div#linkblock { /* el rectángulo izquierdo con los enlaces */
border-right: 1px solid #345;
float: left;
margin-left: -145px; /* el valor negativo del margen de div#maincontent */
width: 125px; /* el ancho contmplando cierto margen */
}
h4 { /* el título */
clear: none;
color: #667788;
font-family: Century Gothic;
font-size: 22px;
font-weight: normal;
letter-spacing: -1px;
line-height: 1.5;
margin: 0;
}
#yourlist { /* la lista con las referencias */
list-style: none;
margin: 0;
padding: 0;
}
#yourlist li { /* cada item de la lista */
margin: 0 0 2px 0;
padding: 3px 0 3px 10px;
position: relative;
}
#yourlist li a { /* cada item es un enlace */
color: #ABC;
font-family: Tahoma;
font-size: 17px;
}
#yourlist li a:hover { /* efecto hover */
color: #BCD;
}
#maincontent p { /* el contenido del rectángulo derecho */
color: #999;
font-family: Arial
font-size: 12px;
}
</style>
<div>
<div>
<div>
<div>
<div> ....... el contenido ....... </div>
</div>
</div>
</div>
</div>
<div> ....... el contenido ....... </div>
<div style="....... las propiedades .......">
<div class="miClase">
<div id="miElemento">
<div style="width:600px;">
<div style="width:550px;">
<div style="width:500px;">
<div style="width:450px;">
<div style="width:400px;"> ....... el contenido ....... </div>
</div>
</div>
</div>
</div>
<div style="background-color:#888;width:600px;">
<div style="background-color:#666;width:550px;">
<div style="background-color:#444;width:500px;">
<div style="background-color:#222;width:450px;">
<div style="background-color:#000;width:400px;"> ....... el contenido ....... </div>
</div>
</div>
</div>
</div>
$f dF ,
.,,,... :$L ;$ ,dP
,!!!!!!!',cd$$$$$c, q 4$f,$$,z$"
,!!!!!!!',c$$$$$$$$$$$$c `$o`$$kuC3$$ .zf
,!!!!!!!',c$$$$$$???"""??$c R$beeF?$$$$$"
;!!!!!!! c$$$$$$",eed$$F"?t' "$$$$bd$$$"
;!!!!!!!.d$$$$$F j"j$3$bf""?b?c, '$$$$$$P"
!!!!!!: $$$$$$P J,f d$$bccbdc`$c .$k<?????>'$b
!!!!!!!> $$$$F".$$".,J$??P}"""' ?$$c. d$$$$$dd$$$$$>
`!!!!! ?L e$$ $$$$$P'zee`"$$$$boc"$$, R$$$$$$$$$$$$
'!!! z$$$$$c,"$P'J$$F'zdbeereee$$$$$eu "??$$$$PF"
Mn !! d$$$$$$$$ee z$P",d$$$$$$c?$$$$$$$$C '!!!::::!!!>
MMM ,cec, '^$$$$$$$$$c,",e$$C?$$$$$$bc?$$$$$$$k !!!!!!!!!!!!
MMM'.$$$$$$$, ?$$$$$$$$P$$$$$$$bc?T$$$$$$d$$$$$$$ . -.`!!!!!!!
nMM d$$$$$$$F $$P???",e4$$$$$$$$bcc?$$$$$$$$$$$$ "h..!!!!!!!!!
n. "$$$$$$$' ::,"??e,.-.?$$$$$$$$$$$$$$$$$$$$F.,"m.`!!!!!!!'
M":!:`""""" :!!!!!!;;."?o._"? ?$$$??$$$"$$F"$P<$$$b"?.`!!!!
: !!!!!; <!!!!!!!!!!: .,,." .zeElu. : ?eb o$$$$$$c"?c'`
'`'!!'.ud !!````'!''``zd$$$$$`d$$$CuuJ" !: 4$$$$$$$$$$c"$c
." !'`z$$$":!!!~`..:!!! d$$$$$$$`$$$$FCCJ" !!!: ?$$$$$$$$$h`$L
$$"z$$$$$":!!! :!!!!!'4$$$$$$$$`$$$$$" "" !!!!!:`$$$$$$$$$$ "
?o$$$$$$F !!!!!!!!!!! 4$$$$$$$$;?$P": JL h.`!!!!; $$$$P?",.u-
$$$$$$$$'!!!!!!!!!!!!:'R$$$$$$$E.:! $.$$c3$h.`!!! .l==7Cuec` )
$$$$$$$$ !!!!!!!!!!!!!; ?$$$$P"<!!! ?$`$$$$h. Rk`$$$$$$r?
$$$$$$$$L`!!!!!!!!!!!!!!! .:::!!!''` $$$$$$ $c"??"7u+? !
$$$$$$$$$ !!!!!!!!!!!'` :!!''` '"" .'?b",.;d$ !!!:
$$$$$$$$$b `!!!'''`.. '''` ...:::!!!!!! $$$.?$b'!!!>
$$$$$$$$$$$bcccd$$$$$$$$ ..:::!!!!!!!!!!!!!!!! 3$$b ?$c`!!!
$$$$$$$$$$$$$$$$$$$$$$$f .::!!!!!!!!!!!!!!!!!!!!!!!!! d$$$$`$$b !!!
$$$$$$$$$$$"3$$$$$$$$$":!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $$$$$,$$$k !!!
$$$$$$$$$P,d$$$$$$$$F !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 3$$$$$ $$$i`!!! 3>
$$$$$$F$Fz$$$$$$$$$$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! d$$$$$h`$$$,!!! $&
$$$$$FJFx$$$$$$$$$$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!';$$$$$$$ 9$$$.'.$$$L
$$$$$ F.$$$$$$$$F.r !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $$$$$$$F ?$$$e$$$$F
$$$$F .$$$$$$$$"d$$bu,,.```''!!!!!!!!!!!!!!!!'''''`,d$$$$$$$F.! ?$$$$$$F
$$$$F d$$$$$$$$ $$$$$$$$$$$bc,,,,,,,,,,,,,,,,ccd$$$$$$$$$$$$ !!! ?$$$$"
"$$$e$$$$$$$$&'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ !!> $P"
`"?$$$$$$$$$e`?$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ !!'
`?$$$$$$$$$$e `""?????$$$$$$$$$$$$$$$$$$$$$$$????""..:!!'
"?$$$$$$$$k`!!!!!!;;;;;;::,,,...... ,,,,,;;!!!!!!!!!!
""???"" !!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!:
!!!!!!!!!!!!!!!!!!!' !!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!.> `!!!!!!!!!'''!!!!'
:; !!!!!!!!!!!!!!!!> .``''`.,cc,,.```.
!!!!!!!!!!!!!!!!!~` d$$$$$$$$$$$$$$$$$>
c.`'''''!!!!!:.. $$$$$$$$$$$$$$$$$$
$$$$$eeeeeeeuuuee$ $$$$$$$$$$$$$$$$$"
$$$$$$$$$$$$$$$$$$ """"...........
?$$$$$$$$$$$$$$$P" '!!!!!!!!!!!!!!
.."""""""""".: !!!!!!!!!!!!!
:!!!!!!!!!!!!!! `!!!!!!!!!!!'
!!!!!!!!!!!!!!' !!!!!!!!!!!'::
:!!!!!!!!!!!!! !!!!!!!!!!:!!:.
!!!!!!!!!!'!!! . `!!!!!!!!!!!!`...
`!!!!!!!! -'`` !!!!!!!!!!!!!!!!!!!!!;:
!!!!!!!!!i!!!: `'''''```'''''''''''''
!!!!!!!!!!!!!!!.
```'!!!!!!!'``::..
`!!!!!!!!!!!'
`````
<div id="miTwitpic">
<script src="http://twitpic.com/badge/v1.jsx?username=miNombre&count=5&size=thumb&colorbg=000000&colorborder=444444&colorfont=AAAAAA&colorlink=556677&title=miTitulo" type="text/javascript">
</script>
</div>
#miTwitpic {
-moz-border-radius: 10px;
background-color: #222;
border: 2px solid #444;
margin: 0 auto;
padding: 10px;
width: 200px;
}
<script type='text/javascript'>
//<![CDATA[
window.googl_callback=function(response) {
if(response.error_message) {
document.getElementById("urlCORTA").innerHTML = ""; // es un error asi que no mostramos nada
} else {
respuesta = response.short_url;
salida = "shortURL: <a rel='nofollow' href='" + respuesta + "' target='_blank'>" + respuesta + "</a>";
document.getElementById("urlCORTA").innerHTML = salida;
}
}
//]]>
</script>
<b:if cond='data:blog.pageType == "item"'>
<span id='urlCORTA'/>
<script expr:src='"http://ggl-shortener.appspot.com/?url=" + data:blog.url + "&jsonp=googl_callback"' type='text/javascript'/>
</b:if>
<style type='text/css'>
#urlCORTA { /* el bloque donde se mostrará */ }
#urlCORTA a { /* el enlace en si mismo */ }
#urlCORTA a:hover { /* efecto hover sobre el enlace */ }
</style>
iPhone by bigkobe | Contiene 9 íconos de 128×128 256x256 y 512x512 en formato PNG.descargar |
Antique | |
Contiene 7 íconos en formato PNG.descargar |
Journal by ShrunkenJedi | Contiene 6 íconos de 512×512, en formato PNG.descargar |
EcoType by SneakyTomato | |
Contiene 32 íconos de 512×512, en formato PNG.descargar |
Starbucks by benedik | |
Contiene 4 íconos de 512×512, en formato PNG.descargar | |
<ul class="menu">
<!-- este es un item simple -->
<li><a href="URL_enlace">ITEM SIMPLE</a></li>
<!-- así, construimos un item desplegable -->
<li class="drop">
<a href="#">ITEM DESPLEGABLE</a>
<!-- este es el ícono que puede ser cualquiera -->
<span class="toggle"> </span>
<!-- el submenú que se despliega -->
<ul>
<li><a href="URL_enlace1">TEXTO ENLACE 1</a></li>
<li><a href="URL_enlace2">TEXTO ENLACE 2</a></li>
<li><a href="URL_enlace3">TEXTO ENLACE 3</a></li>
</ul>
</li>
</ul>
ul.menu { /* es la lista principal */
background-color: #A9A9A9;
float: left;
list-style-type: none;
margin: 0;
padding: 0 20px;
}
ul.menu li { /* cada item de la lista principal */
border: 2px solid #A9A9A9;
display: block;
float: left;
height: 30px;
margin: 0;
padding: 0;
position: relative;
}
ul.menu li:hover { /* efecto hover sobre los items de la lista principal */
-moz-border-radius: 4px;
background-color: #000;
border:2px solid #A9A9A9;
}
ul.menu li a { /* cada item de la lista principal es un enlace */
color: #FFF;
display: block;
float: left;
font-weight: bold;
line-height: 18px;
padding: 6px 15px 5px;
text-decoration: none;
}
/* el ícono para desplegar el menú */
ul.menu li a span {
font-weight: normal;
padding-left: 3px;
}
ul.menu li.drop a {
padding-right: 7px;
}
ul.menu li.drop:hover li {
border: none;
}
ul.menu li.drop span.toggle {
background: transparent url(URL_toggle.png) no-repeat scroll 0 -20px;
display: block;
float: left;
height: 26px;
margin: 0 5px;
padding: 0;
width: 20px;
}
/* los efectos al pasar el ratón que desplegarán el submenú */
ul.menu li.drop:hover {
-moz-border-radius-bottomleft: 0;
-moz-border-radius-bottomright: 0;
-moz-border-radius-topleft: 4px;
-moz-border-radius-topright: 4px;
}
ul.menu li.drop:hover ul {
display: block;
padding: 0 0 10px 0;
z-index: 1;
}
ul.menu li ul { /* la lista con el submenú */
background-color: #555;
display: none;
left: 0;
list-style-type: none;
margin: 0;
padding: 0;
position: absolute;
top: 30px;
width: 100%;
}
ul.menu li ul li { /* cada item del submenú */
border: none;
float: none;
height: auto;
margin: 0;
padding: 0;
}
ul.menu li ul li a { /* cada item del submenú es un enlace */
background-color: transparent;
color: #DDD !important;
display: block;
float: none;
font-size: 13px;
font-weight: normal;
height: auto;
margin: 0;
padding: 5px 15px;
}
/* efectos sobre los items del submenú */
ul.menu li:hover ul {
-moz-border-radius-bottomleft: 4px;
-moz-border-radius-bottomright: 4px;
border: none;
background-color: #555;
}
ul.menu li:hover ul * {
-moz-border-radius: 0;
background-color: transparent;
}
ul.menu li ul li:hover {
background-color: #000;
}
En una entrada anterior habíamos visto como conseguir un efecto de nieve en el blog mediante el uso de la etiqueta "marquee" y poco después veíamos como incluir el efecto nieve usando un script.
En esta ocasión vamos a ver de nuevo como incluir nieve en el blog mediante el uso de un script. El script irá incluido directamente en la plantilla y lo he "marcado" para que, una vez pasadas las fiestas, sea fácil su localización para retirarlo.
Este script consigue un efecto muy lindo, ya que los copos que van cayendo quedan acumulados al final de la página y mientras unos caen, los del pie de la página se van deshaciendo poco a poco...
Además si movemos el ratón por la pagina, los copos cambian de dirección como movidos por un ligero viento.
Antes de decidir si vais a usarlo o no, podéis ver una demostración online en un blog donde también e incluido el script para copiar.
Lo único que hemos de hacer para conseguir el efecto nieve, es copiar el script y colocarlo en el código de nuestra plantilla antes de </head>
<!-- Comienzo del script para nieve --><script type="text/javascript">
//<![CDATA[
/*
DHTML Snowstorm! OO-style Jascript-based Snow effect
----------------------------------------------------
Version 1.4.20091115 (Previous rev: v1.3.20081215)
Code by Scott Schiller - http://schillmania.com
----------------------------------------------------
Initializes after body onload() by default (via addEventHandler() call at bottom.)
To customize properties, edit below or override configuration after this script
has run (but before body.onload), eg. snowStorm.snowStick = false;
*/
var snowStorm = null;
function SnowStorm() {
// --- PROPERTIES ---
this.flakesMax = 150; // Limit total amount of snow made (falling + sticking)
this.flakesMaxActive = 64; // Limit amount of snow falling at once (less = lower CPU use)
this.animationInterval = 33; // Theoretical "miliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower
this.flakeBottom = null; // Integer for Y axis snow limit, 0 or null for "full-screen" snow effect
this.targetElement = null; // element which snow will be appended to (document body if null/undefined) - can be an element ID string, or a DOM node reference
this.followMouse = true; // Snow will change movement with the user's mouse
this.snowColor = '#fff'; // Don't eat (or use?) yellow snow.
this.snowCharacter = '•'; // • = bullet, · is square on some systems etc.
this.snowStick = true; // Whether or not snow should "stick" at the bottom. When off, will never collect.
this.useMeltEffect = true; // When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it
this.useTwinkleEffect = false; // Allow snow to randomly "flicker" in and out of view while falling
this.usePositionFixed = false; // true = snow not affected by window scroll. may increase CPU load, disabled by default - if enabled, used only where supported
// --- less-used bits ---
this.flakeLeftOffset = 0; // amount to subtract from edges of container
this.flakeRightOffset = 0; // amount to subtract from edges of container
this.flakeWidth = 8; // max pixel width for snow element
this.flakeHeight = 8; // max pixel height for snow element
this.vMaxX = 5; // Maximum X velocity range for snow
this.vMaxY = 4; // Maximum Y velocity range
this.zIndex = 0; // CSS stacking order applied to each snowflake
// --- End of user section ---
// jslint global declarations
/*global window, document, navigator, clearInterval, setInterval */
var addEvent = (typeof(window.attachEvent)=='undefined'?function(o,evtName,evtHandler) {
return o.addEventListener(evtName,evtHandler,false);
}:function(o,evtName,evtHandler) {
return o.attachEvent('on'+evtName,evtHandler);
});
var removeEvent = (typeof(window.attachEvent)=='undefined'?function(o,evtName,evtHandler) {
return o.removeEventListener(evtName,evtHandler,false);
}:function(o,evtName,evtHandler) {
return o.detachEvent('on'+evtName,evtHandler);
});
function rnd(n,min) {
if (isNaN(min)) {
min = 0;
}
return (Math.random()*n)+min;
}
function plusMinus(n) {
return (parseInt(rnd(2),10)==1?n*-1:n);
}
var s = this;
var storm = this;
this.timers = [];
this.flakes = [];
this.disabled = false;
this.active = false;
var isIE = navigator.userAgent.match(/msie/i);
var isIE6 = navigator.userAgent.match(/msie 6/i);
var isOldIE = (isIE && (isIE6 || navigator.userAgent.match(/msie 5/i)));
var isWin9X = navigator.appVersion.match(/windows 98/i);
var isiPhone = navigator.userAgent.match(/iphone/i);
var isBackCompatIE = (isIE && document.compatMode == 'BackCompat');
var noFixed = ((isBackCompatIE || isIE6 || isiPhone)?true:false);
var screenX = null;
var screenX2 = null;
var screenY = null;
var scrollY = null;
var vRndX = null;
var vRndY = null;
var windOffset = 1;
var windMultiplier = 2;
var flakeTypes = 6;
var fixedForEverything = false;
var opacitySupported = (function(){
try {
document.createElement('div').style.opacity = '0.5';
} catch (e) {
return false;
}
return true;
})();
var docFrag = document.createDocumentFragment();
if (s.flakeLeftOffset === null) {
s.flakeLeftOffset = 0;
}
if (s.flakeRightOffset === null) {
s.flakeRightOffset = 0;
}
this.meltFrameCount = 20;
this.meltFrames = [];
for (var i=0; i<this.meltFrameCount; i++) {
this.meltFrames.push(1-(i/this.meltFrameCount));
}
this.randomizeWind = function() {
vRndX = plusMinus(rnd(s.vMaxX,0.2));
vRndY = rnd(s.vMaxY,0.2);
if (this.flakes) {
for (var i=0; i<this.flakes.length; i++) {
if (this.flakes[i].active) {
this.flakes[i].setVelocities();
}
}
}
};
this.scrollHandler = function() {
// "attach" snowflakes to bottom of window if no absolute bottom value was given
scrollY = (s.flakeBottom?0:parseInt(window.scrollY||document.documentElement.scrollTop||document.body.scrollTop,10));
if (isNaN(scrollY)) {
scrollY = 0; // Netscape 6 scroll fix
}
if (!fixedForEverything && !s.flakeBottom && s.flakes) {
for (var i=s.flakes.length; i--;) {
if (s.flakes[i].active === 0) {
s.flakes[i].stick();
}
}
}
};
this.resizeHandler = function() {
if (window.innerWidth || window.innerHeight) {
screenX = window.innerWidth-(!isIE?16:2)-s.flakeRightOffset;
screenY = (s.flakeBottom?s.flakeBottom:window.innerHeight);
} else {
screenX = (document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth)-(!isIE?8:0)-s.flakeRightOffset;
screenY = s.flakeBottom?s.flakeBottom:(document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight);
}
screenX2 = parseInt(screenX/2,10);
};
this.resizeHandlerAlt = function() {
screenX = s.targetElement.offsetLeft+s.targetElement.offsetWidth-s.flakeRightOffset;
screenY = s.flakeBottom?s.flakeBottom:s.targetElement.offsetTop+s.targetElement.offsetHeight;
screenX2 = parseInt(screenX/2,10);
};
this.freeze = function() {
// pause animation
if (!s.disabled) {
s.disabled = 1;
} else {
return false;
}
for (var i=s.timers.length; i--;) {
clearInterval(s.timers[i]);
}
};
this.resume = function() {
if (s.disabled) {
s.disabled = 0;
} else {
return false;
}
s.timerInit();
};
this.toggleSnow = function() {
if (!s.flakes.length) {
// first run
s.start();
} else {
s.active = !s.active;
if (s.active) {
s.show();
s.resume();
} else {
s.stop();
s.freeze();
}
}
};
this.stop = function() {
this.freeze();
for (var i=this.flakes.length; i--;) {
this.flakes[i].o.style.display = 'none';
}
removeEvent(window,'scroll',s.scrollHandler);
removeEvent(window,'resize',s.resizeHandler);
if (!isOldIE) {
removeEvent(window,'blur',s.freeze);
removeEvent(window,'focus',s.resume);
}
};
this.show = function() {
for (var i=this.flakes.length; i--;) {
this.flakes[i].o.style.display = 'block';
}
};
this.SnowFlake = function(parent,type,x,y) {
var s = this;
var storm = parent;
this.type = type;
this.x = x||parseInt(rnd(screenX-20),10);
this.y = (!isNaN(y)?y:-rnd(screenY)-12);
this.vX = null;
this.vY = null;
this.vAmpTypes = [1,1.2,1.4,1.6,1.8]; // "amplification" for vX/vY (based on flake size/type)
this.vAmp = this.vAmpTypes[this.type];
this.melting = false;
this.meltFrameCount = storm.meltFrameCount;
this.meltFrames = storm.meltFrames;
this.meltFrame = 0;
this.twinkleFrame = 0;
this.active = 1;
this.fontSize = (10+(this.type/5)*10);
this.o = document.createElement('div');
this.o.innerHTML = storm.snowCharacter;
this.o.style.color = storm.snowColor;
this.o.style.position = (fixedForEverything?'fixed':'absolute');
this.o.style.width = storm.flakeWidth+'px';
this.o.style.height = storm.flakeHeight+'px';
this.o.style.fontFamily = 'arial,verdana';
this.o.style.overflow = 'hidden';
this.o.style.fontWeight = 'normal';
this.o.style.zIndex = storm.zIndex;
docFrag.appendChild(this.o);
this.refresh = function() {
if (isNaN(s.x) || isNaN(s.y)) {
// safety check
return false;
}
s.o.style.left = s.x+'px';
s.o.style.top = s.y+'px';
};
this.stick = function() {
if (noFixed || (storm.targetElement != document.documentElement && storm.targetElement != document.body)) {
s.o.style.top = (screenY+scrollY-storm.flakeHeight)+'px';
} else if (storm.flakeBottom) {
s.o.style.top = storm.flakeBottom+'px';
} else {
s.o.style.display = 'none';
s.o.style.top = 'auto';
s.o.style.bottom = '0px';
s.o.style.position = 'fixed';
s.o.style.display = 'block';
}
};
this.vCheck = function() {
if (s.vX>=0 && s.vX<0.2) {
s.vX = 0.2;
} else if (s.vX<0 && s.vX>-0.2) {
s.vX = -0.2;
}
if (s.vY>=0 && s.vY<0.2) {
s.vY = 0.2;
}
};
this.move = function() {
var vX = s.vX*windOffset;
s.x += vX;
s.y += (s.vY*s.vAmp);
if (s.x >= screenX || screenX-s.x < storm.flakeWidth) { // X-axis scroll check
s.x = 0;
} else if (vX < 0 && s.x-storm.flakeLeftOffset<0-storm.flakeWidth) {
s.x = screenX-storm.flakeWidth-1; // flakeWidth;
}
s.refresh();
var yDiff = screenY+scrollY-s.y;
if (yDiff<storm.flakeHeight) {
s.active = 0;
if (storm.snowStick) {
s.stick();
} else {
s.recycle();
}
} else {
if (storm.useMeltEffect && s.active && s.type < 3 && !s.melting && Math.random()>0.998) {
// ~1/1000 chance of melting mid-air, with each frame
s.melting = true;
s.melt();
// only incrementally melt one frame
// s.melting = false;
}
if (storm.useTwinkleEffect) {
if (!s.twinkleFrame) {
if (Math.random()>0.9) {
s.twinkleFrame = parseInt(Math.random()*20,10);
}
} else {
s.twinkleFrame--;
s.o.style.visibility = (s.twinkleFrame && s.twinkleFrame%2===0?'hidden':'visible');
}
}
}
};
this.animate = function() {
// main animation loop
// move, check status, die etc.
s.move();
};
this.setVelocities = function() {
s.vX = vRndX+rnd(storm.vMaxX*0.12,0.1);
s.vY = vRndY+rnd(storm.vMaxY*0.12,0.1);
};
this.setOpacity = function(o,opacity) {
if (!opacitySupported) {
return false;
}
o.style.opacity = opacity;
};
this.melt = function() {
if (!storm.useMeltEffect || !s.melting) {
s.recycle();
} else {
if (s.meltFrame < s.meltFrameCount) {
s.meltFrame++;
s.setOpacity(s.o,s.meltFrames[s.meltFrame]);
s.o.style.fontSize = s.fontSize-(s.fontSize*(s.meltFrame/s.meltFrameCount))+'px';
s.o.style.lineHeight = storm.flakeHeight+2+(storm.flakeHeight*0.75*(s.meltFrame/s.meltFrameCount))+'px';
} else {
s.recycle();
}
}
};
this.recycle = function() {
s.o.style.display = 'none';
s.o.style.position = (fixedForEverything?'fixed':'absolute');
s.o.style.bottom = 'auto';
s.setVelocities();
s.vCheck();
s.meltFrame = 0;
s.melting = false;
s.setOpacity(s.o,1);
s.o.style.padding = '0px';
s.o.style.margin = '0px';
s.o.style.fontSize = s.fontSize+'px';
s.o.style.lineHeight = (storm.flakeHeight+2)+'px';
s.o.style.textAlign = 'center';
s.o.style.verticalAlign = 'baseline';
s.x = parseInt(rnd(screenX-storm.flakeWidth-20),10);
s.y = parseInt(rnd(screenY)*-1,10)-storm.flakeHeight;
s.refresh();
s.o.style.display = 'block';
s.active = 1;
};
this.recycle(); // set up x/y coords etc.
this.refresh();
};
this.snow = function() {
var active = 0;
var used = 0;
var waiting = 0;
var flake = null;
for (var i=s.flakes.length; i--;) {
if (s.flakes[i].active == 1) {
s.flakes[i].move();
active++;
} else if (s.flakes[i].active === 0) {
used++;
} else {
waiting++;
}
if (s.flakes[i].melting) {
s.flakes[i].melt();
}
}
if (active<s.flakesMaxActive) {
flake = s.flakes[parseInt(rnd(s.flakes.length),10)];
if (flake.active === 0) {
flake.melting = true;
}
}
};
this.mouseMove = function(e) {
if (!s.followMouse) {
return true;
}
var x = parseInt(e.clientX,10);
if (x<screenX2) {
windOffset = -windMultiplier+(x/screenX2*windMultiplier);
} else {
x -= screenX2;
windOffset = (x/screenX2)*windMultiplier;
}
};
this.createSnow = function(limit,allowInactive) {
for (var i=0; i<limit; i++) {
s.flakes[s.flakes.length] = new s.SnowFlake(s,parseInt(rnd(flakeTypes),10));
if (allowInactive || i>s.flakesMaxActive) {
s.flakes[s.flakes.length-1].active = -1;
}
}
storm.targetElement.appendChild(docFrag);
};
this.timerInit = function() {
s.timers = (!isWin9X?[setInterval(s.snow,s.animationInterval)]:[setInterval(s.snow,s.animationInterval*3),setInterval(s.snow,s.animationInterval)]);
};
this.init = function() {
s.randomizeWind();
s.createSnow(s.flakesMax); // create initial batch
addEvent(window,'resize',s.resizeHandler);
addEvent(window,'scroll',s.scrollHandler);
if (!isOldIE) {
addEvent(window,'blur',s.freeze);
addEvent(window,'focus',s.resume);
}
s.resizeHandler();
s.scrollHandler();
if (s.followMouse) {
addEvent(document,'mousemove',s.mouseMove);
}
s.animationInterval = Math.max(20,s.animationInterval);
s.timerInit();
};
var didInit = false;
this.start = function(bFromOnLoad) {
if (!didInit) {
didInit = true;
} else if (bFromOnLoad) {
// already loaded and running
return true;
}
if (typeof s.targetElement == 'string') {
var targetID = s.targetElement;
s.targetElement = document.getElementById(targetID);
if (!s.targetElement) {
throw new Error('Snowstorm: Unable to get targetElement "'+targetID+'"');
}
}
if (!s.targetElement) {
s.targetElement = (!isIE?(document.documentElement?document.documentElement:document.body):document.body);
}
if (s.targetElement != document.documentElement && s.targetElement != document.body) {
s.resizeHandler = s.resizeHandlerAlt; // re-map handler to get element instead of screen dimensions
}
s.resizeHandler(); // get bounding box elements
s.usePositionFixed = (s.usePositionFixed && !noFixed); // whether or not position:fixed is supported
fixedForEverything = s.usePositionFixed;
if (screenX && screenY && !s.disabled) {
s.init();
s.active = true;
}
};
function doStart() {
s.start(true);
}
if (document.addEventListener) {
// safari 3.0.4 doesn't do DOMContentLoaded, maybe others - use a fallback to be safe.
document.addEventListener('DOMContentLoaded',doStart,false);
window.addEventListener('load',doStart,false);
} else {
addEvent(window,'load',doStart);
}
}
snowStorm = new SnowStorm();
//]]>
</script><!-- Fin del script para nieve -->