En tutoriales anteriores habíamos visto dos efectos diferentes para nuestro cursor: el
efecto de burbujas que subían y el
efecto de estrellas que caían al mover el cursor en nuestro blog.
Hoy vamos a ver otro efecto más para el cursor de nuestro blog. Se trata de un efecto de explosión de estrellas de colores. Este efecto
funciona al dar clic en cualquiera parte de nuestro blog (por ejemplo, al momento de seleccionar algo).
Al momento de dar clic se producirá el efecto de explosión de varias estrellas de colores.
( ↪ Ver DEMO)
Para agregar este efecto, seguimos estos sencillos pasos:
1.§ Vamos a Plantilla - Edición de HTML.
2.§ Con ayuda de CTRL+F buscamos
</head> y justo antes de éste, pegaremos el siguiente script:
<script type='text/javascript'>
//Cursor explosion estrellas
// <![CDATA[
var sparks=75;
var speed=33;
var bangs=5;
var colours=new Array('#0033ff', '#ff0033', '#00ee00', '#9933ff', '#00ccff', '#ff9933', '#ff00cc');
var intensity=new Array();
var Xpos=new Array();
var Ypos=new Array();
var dX=new Array();
var dY=new Array();
var stars=new Array();
var decay=new Array();
var timers=new Array();
var swide=800;
var shigh=600;
var sleft=sdown=0;
var count=0;
function addLoadEvent(funky) {
var oldonload=window.onload;
if (typeof(oldonload)!='function') window.onload=funky;
else window.onload=function() {
if (oldonload) oldonload();
funky();
}
}
addLoadEvent(clicksplode);
function clicksplode() { if (document.getElementById) {
var i, j;
window.onscroll=set_scroll;
window.onresize=set_width;
document.onclick=eksplode;
set_width();
set_scroll();
for (i=0; i<bangs; i++) for (j=sparks*i; j<sparks+sparks*i; j++) {
stars[j]=createDiv('*', 13);
document.body.appendChild(stars[j]);
}
}}
function createDiv(char, size) {
var div, sty;
div=document.createElement('div');
sty=div.style;
sty.font=size+'px monospace';
sty.position='absolute';
sty.backgroundColor='transparent';
sty.visibility='hidden';
sty.zIndex='101';
div.appendChild(document.createTextNode(char));
return (div);
}
function bang(N) {
var i, Z, A=0;
for (i=sparks*N; i<sparks*(N+1); i++) {
if (decay[i]) {
Z=stars[i].style;
Xpos[i]+=dX[i];
Ypos[i]+=(dY[i]+=1.25/intensity[N]);
if (Xpos[i]>=swide || Xpos[i]<0 || Ypos[i]>=shigh+sdown || Ypos[i]<0) decay[i]=1;
else {
Z.left=Xpos[i]+'px';
Z.top=Ypos[i]+'px';
}
if (decay[i]==15) Z.fontSize='7px';
else if (decay[i]==7) Z.fontSize='2px';
else if (decay[i]==1) Z.visibility='hidden';
decay[i]--;
}
else A++;
}
if (A!=sparks) timers[N]=setTimeout('bang('+N+')', speed);
}
function eksplode(e) {
var x, y, i, M, Z, N;
set_scroll();
y=(e)?e.pageY:event.y+sdown;
x=(e)?e.pageX:event.x+sleft;
N=++count%bangs;
M=Math.floor(Math.random()*3*colours.length);
intensity[N]=5+Math.random()*4;
for (i=N*sparks; i<(N+1)*sparks; i++) {
Xpos[i]=x;
Ypos[i]=y-5;
dY[i]=(Math.random()-0.5)*intensity[N];
dX[i]=(Math.random()-0.5)*(intensity[N]-Math.abs(dY[i]))*1.25;
decay[i]=16+Math.floor(Math.random()*16);
Z=stars[i].style;
if (M<colours.length) Z.color=colours[i%2?count%colours.length:M];
else if (M<2*colours.length) Z.color=colours[count%colours.length];
else Z.color=colours[i%colours.length];
Z.fontSize='13px';
Z.visibility='visible';
}
clearTimeout(timers[N]);
bang(N);
}
function set_width() {
var sw_min=999999;
var sh_min=999999;
if (document.documentElement && document.documentElement.clientWidth) {
if (document.documentElement.clientWidth>0) sw_min=document.documentElement.clientWidth;
if (document.documentElement.clientHeight>0) sh_min=document.documentElement.clientHeight;
}
if (typeof(self.innerWidth)=='number' && self.innerWidth) {
if (self.innerWidth>0 && self.innerWidth<sw_min) sw_min=self.innerWidth;
if (self.innerHeight>0 && self.innerHeight<sh_min) sh_min=self.innerHeight;
}
if (document.body.clientWidth) {
if (document.body.clientWidth>0 && document.body.clientWidth<sw_min) sw_min=document.body.clientWidth;
if (document.body.clientHeight>0 && document.body.clientHeight<sh_min) sh_min=document.body.clientHeight;
}
if (sw_min==999999 || sh_min==999999) {
sw_min=800;
sh_min=600;
}
swide=sw_min-7;
shigh=sh_min-7;
}
function set_scroll() {
if (typeof(self.pageYOffset)=='number') {
sdown=self.pageYOffset;
sleft=self.pageXOffset;
}
else if (document.body && (document.body.scrollTop || document.body.scrollLeft)) {
sdown=document.body.scrollTop;
sleft=document.body.scrollLeft;
}
else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) {
sleft=document.documentElement.scrollLeft;
sdown=document.documentElement.scrollTop;
}
else {
sdown=0;
sleft=0;
}
}
// ]]>
</script>
3.§ Si dejamos el código tal como está, las estrellas cambiarán de color cada vez que demos clic; si queremos que las estrellas sean de un color único, cambiamos lo resaltado en negrita por el
color de nuestra preferencia
4.§ Damos clic a guardar y listo.
Ver demo
19 opinaron:
Muchas gracias, ya lo he puesto y me gusta!!!
» Gra:
Qué bueno que te gustó (:
Gracias a ti por la visita y el comentario
S@lu2
Gracias Jessica!!!...ya esta en mi blog :)
» Pachiarts:
Qué bueno que te haya gustado el efecto y lo hayas implementado en tu blog. Acabo de verlo y se ve muy bien, junto con los corazones que caen. Gracias por tu comentario (:
S@lu2
Muchas gracias por tu blog.
Me gusta lo que nos enseñas a las personas que como yo, somos realmente torpes.
Besos y reitero mis gracias
» Aquí me quedaré...:
Gracias por tu lindo comentario y por tu visita (:
S@lu2
Ah, ok.
mirka
<3
No se porque, pero, por alguna razon a mi no me sale el efecto. AYUDA :O
» E.N .G:
Prueba borrando el código y luego agregándolo nuevamente. Si el problema persiste, escríbeme un mensaje (:
S@lu2
Gracias Jessica,
excelente blog, con útiles consejos.
Cada vez que he tratado de pegar un código para añadir o hacer cambios, no lo he logrado. Lo último que intenté fue la explosión de estrellas y nada. Soy neófita en estos asuntos, estoy segura que algo estoy haciendo mal, ¿Me lo podrías explicar con mansanitas? Muchas gracias
» Sor Lulú:
Claro que sí. Yo te ayudo. Pero dime exáctamente el problema: ¿pegaste el código y te sale error y no te deja guardarlo? ¿qué dice ese error?
Escríbeme y yo te ayudaré con tu blog (:
S@lu2
Muchisimasa gracias ;)
» Maria C.C.:
Gracias a ti por la visita ^^
S@lu2
gracias!
Mily, gracias a ti por la visita al blog y por tu comentario : )
S@lu2
:O
» Andrés:
Gracias por visitar el blog :)
S@lu2
Por favor, trata de tener habilitado tu perfil (has click en "Comenta con el antiguo editor" para iniciar sesión) o deja un enlace a tu blog escogiendo la opción "Nombre/URL", procura no dejar comentarios Anónimos.
Nota: Si es que se presenta algún problema con el formulario de comentarios, sólo has click en "Comenta con el antiguo editor"
Gracias por participar en el blog.