Créer son site Gratuitement : Service / Outils webmaster gratuit
Mon Site Gratuit
Contactez nous
Nos partenaires
Scripts
Tutoriaux
Nos services
Forums
Accueil
ForumsPluie d'étoiles sous le Curseur
      Imprimer le sujet FAQ  M'enregistrer 
  Quelques animations simples et interractives ne ferons pas de mal à vos pages web. Partez découvrir le monde du Javascript !

Pluie d'étoiles sous le Curseur

Messagede @lex971 le 05 Avr 2009, 02:23

Bonjour à tous,

Voici un petit Code JavaScript pour faire une Plue d'étoiles sout votre Curseur.

Code: Tout sélectionner
<script type="javascript" src="http://astuforum.free.fr/js/etoiles-cur.js">
</script>


Le Code Source CSS est:
Code: Tout sélectionner
var sparkles=40;

var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var tiny=new Array();
var star=new Array();
var starv=new Array();
var starx=new Array();
var stary=new Array();
var tinyx=new Array();
var tinyy=new Array();
var tinyv=new Array();

window.onload=function()
{
    if (document.getElementById)
    {
        var i, rats, rlef, rdow;
        for (var i=0; i<sparkles; i++)
        {
            var rats=createDiv(3, 3);
            rats.style.visibility="hidden";
            document.body.appendChild(tiny[i]=rats);
            starv[i]=0;
            tinyv[i]=0;
            var rats=createDiv(5, 5);
            rats.style.backgroundColor="transparent";
            rats.style.visibility="hidden";
            var rlef=createDiv(1, 5);
            var rdow=createDiv(5, 1);
            rats.appendChild(rlef);
            rats.appendChild(rdow);
            rlef.style.top="2px";
            rlef.style.left="0px";
            rdow.style.top="0px";
            rdow.style.left="2px";
            document.body.appendChild(star[i]=rats);
        }
        set_width();
        sparkle();
    }
}

function sparkle()
{
    var c;
    if (x!=ox || y!=oy)
    {
        ox=x;
        oy=y;
        for (c=0; c<sparkles; c++) if (!starv[c])
        {
            star[c].style.left=(starx[c]=x)+"px";
            star[c].style.top=(stary[c]=y)+"px";
            star[c].style.clip="rect(0px, 5px, 5px, 0px)";
            star[c].style.visibility="visible";
            starv[c]=50;
            break;
        }
    }
    for (c=0; c<sparkles; c++)
    {
        if (starv[c]) update_star(c);
        if (tinyv[c]) update_tiny(c);
    }
    setTimeout("sparkle()", 40);
}

function update_star(i)
{
    if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
    if (starv[i])
    {
        stary[i]+=1+Math.random()*3;
        if (stary[i]<shigh+sdown)
        {
            star[i].style.top=stary[i]+"px";
            starx[i]+=(i%5-2)/5;
            star[i].style.left=starx[i]+"px";
        }
        else
        {
            star[i].style.visibility="hidden";
            starv[i]=0;
            return;
        }
    }
    else
    {
        tinyv[i]=50;
        tiny[i].style.top=(tinyy[i]=stary[i])+"px";
        tiny[i].style.left=(tinyx[i]=starx[i])+"px";
        tiny[i].style.width="2px";
        tiny[i].style.height="2px";
        star[i].style.visibility="hidden";
        tiny[i].style.visibility="visible"
    }
}

function update_tiny(i)
{
    if (--tinyv[i]==25)
    {
        tiny[i].style.width="1px";
        tiny[i].style.height="1px";
    }
    if (tinyv[i])
    {
        tinyy[i]+=1+Math.random()*3;
        if (tinyy[i]<shigh+sdown)
        {
            tiny[i].style.top=tinyy[i]+"px";
            tinyx[i]+=(i%5-2)/5;
            tiny[i].style.left=tinyx[i]+"px";
        }
        else
        {
            tiny[i].style.visibility="hidden";
            tinyv[i]=0;
            return;
        }
    }
    else tiny[i].style.visibility="hidden";
}

document.onmousemove=mouse;
function mouse(e)
{
    set_scroll();
    y=(e)?e.pageY:event.y+sdown;
    x=(e)?e.pageX:event.x+sleft;
}

function set_scroll()
{
    if (typeof(self.pageYOffset)=="number")
    {
        sdown=self.pageYOffset;
        sleft=self.pageXOffset;
    }
    else if (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;
    }
}

window.onresize=set_width;
function set_width()
{
    if (typeof(self.innerWidth)=="number")
    {
        swide=self.innerWidth;
        shigh=self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientWidth)
    {
        swide=document.documentElement.clientWidth;
        shigh=document.documentElement.clientHeight;
    }
    else if (document.body.clientWidth)
    {
        swide=document.body.clientWidth;
        shigh=document.body.clientHeight;
    }
}

function createDiv(height, width)
{
  var div=document.createElement("div");
  div.style.position="absolute";
  div.style.height=height+"px";
  div.style.width=width+"px";
  div.style.overflow="hidden";


  couleur = "multicolore";
  if (couleur == 'multicolore')
  {
     Rouge = Math.floor(Math.random()*256) ;
     Vert = Math.floor(Math.random()*256) ;
     Bleu = Math.floor(Math.random()*256) ;
     div.style.backgroundColor="rgb("+Rouge+","+Vert+","+Bleu+")";
  }
  else
  {
     div.style.backgroundColor=couleur ;
  }
  return (div);
}


Édité et Héberger par Missx sur AstuForum.free.fr.


Bonne Journée à tous,
@lex971
Dernière édition par @lex971 le 09 Avr 2009, 16:05, édité 1 fois.
Avatar de l'utilisateur
@lex971
Mini Plug'zien
Mini Plug'zien
 
Messages: 22
Inscription: 05 Avr 2009, 01:50
Localisation: A l'atelier des Admins
Points: 54


Re: Pluie d'étoiles sous le Curseur

Messagede Cclleemm le 05 Avr 2009, 22:59

Il marche plutot bien ton code !
Es tu bien l'auteur de http://astuforum.free.fr ?
EN tout cas merci pour ce bout de code qui peut servir dans des époques festives pour décorer un site ! ;-D
Image
Avatar de l'utilisateur
Cclleemm
Admin'z
Admin'z
 
Messages: 2762
Inscription: 14 Mar 2007, 16:21
Localisation: Savoie
Points: 2003


Re: Pluie d'étoiles sous le Curseur

Messagede @lex971 le 06 Avr 2009, 04:11

Créer et édité par Missx sur AstuForum.free.fr.


Désoler il ne s'agit pas de ma création. Missx est un... Scripteur et créateur d'images, d'animation Flash, etc... :bravo:
Avatar de l'utilisateur
@lex971
Mini Plug'zien
Mini Plug'zien
 
Messages: 22
Inscription: 05 Avr 2009, 01:50
Localisation: A l'atelier des Admins
Points: 54


Re: Pluie d'étoiles sous le Curseur

Messagede Cclleemm le 06 Avr 2009, 12:26

Ok, donc je ne peux pas le valider sur le site !
Mais ton script peu être très utile pour les membres du fofo ! Merci
Image
Avatar de l'utilisateur
Cclleemm
Admin'z
Admin'z
 
Messages: 2762
Inscription: 14 Mar 2007, 16:21
Localisation: Savoie
Points: 2003


Re: Pluie d'étoiles sous le Curseur

Messagede @lex971 le 06 Avr 2009, 20:54

Ok. Comptent d'avoir pue rendre Service :bravo:
Avatar de l'utilisateur
@lex971
Mini Plug'zien
Mini Plug'zien
 
Messages: 22
Inscription: 05 Avr 2009, 01:50
Localisation: A l'atelier des Admins
Points: 54


Re: Pluie d'étoiles sous le Curseur

Messagede doumee le 16 Aoû 2009, 19:51

Bonsoir
J'aimerai beaucoup installer ce script sur un kit, pourrais-je savoir où je dois placer ce script et pourquoi est-il en deux parties ?
Bonne soirée :-)
doumee
Nouveau Plug'zien
Nouveau Plug'zien
 
Messages: 1
Inscription: 16 Aoû 2009, 19:39
Points: 1


Re: Pluie d'étoiles sous le Curseur

Messagede zardoz le 17 Aoû 2009, 06:07

Voici un exemple fonctionnelle : Colle le dans un nouveau document HTML pour un essais.
Une page blanche, c'est que le script est complet ici, c'est pour un essais et c'est fonctionnelle.
C'est pour répondre à ta question.

Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="javascript" src="http://astuforum.free.fr/js/etoiles-cur.js">
</script>
<script type="text/javascript">
var sparkles=40;

var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var tiny=new Array();
var star=new Array();
var starv=new Array();
var starx=new Array();
var stary=new Array();
var tinyx=new Array();
var tinyy=new Array();
var tinyv=new Array();

window.onload=function()
{
    if (document.getElementById)
    {
        var i, rats, rlef, rdow;
        for (var i=0; i<sparkles; i++)
        {
            var rats=createDiv(3, 3);
            rats.style.visibility="hidden";
            document.body.appendChild(tiny[i]=rats);
            starv[i]=0;
            tinyv[i]=0;
            var rats=createDiv(5, 5);
            rats.style.backgroundColor="transparent";
            rats.style.visibility="hidden";
            var rlef=createDiv(1, 5);
            var rdow=createDiv(5, 1);
            rats.appendChild(rlef);
            rats.appendChild(rdow);
            rlef.style.top="2px";
            rlef.style.left="0px";
            rdow.style.top="0px";
            rdow.style.left="2px";
            document.body.appendChild(star[i]=rats);
        }
        set_width();
        sparkle();
    }
}

function sparkle()
{
    var c;
    if (x!=ox || y!=oy)
    {
        ox=x;
        oy=y;
        for (c=0; c<sparkles; c++) if (!starv[c])
        {
            star[c].style.left=(starx[c]=x)+"px";
            star[c].style.top=(stary[c]=y)+"px";
            star[c].style.clip="rect(0px, 5px, 5px, 0px)";
            star[c].style.visibility="visible";
            starv[c]=50;
            break;
        }
    }
    for (c=0; c<sparkles; c++)
    {
        if (starv[c]) update_star(c);
        if (tinyv[c]) update_tiny(c);
    }
    setTimeout("sparkle()", 40);
}

function update_star(i)
{
    if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
    if (starv[i])
    {
        stary[i]+=1+Math.random()*3;
        if (stary[i]<shigh+sdown)
        {
            star[i].style.top=stary[i]+"px";
            starx[i]+=(i%5-2)/5;
            star[i].style.left=starx[i]+"px";
        }
        else
        {
            star[i].style.visibility="hidden";
            starv[i]=0;
            return;
        }
    }
    else
    {
        tinyv[i]=50;
        tiny[i].style.top=(tinyy[i]=stary[i])+"px";
        tiny[i].style.left=(tinyx[i]=starx[i])+"px";
        tiny[i].style.width="2px";
        tiny[i].style.height="2px";
        star[i].style.visibility="hidden";
        tiny[i].style.visibility="visible"
    }
}

function update_tiny(i)
{
    if (--tinyv[i]==25)
    {
        tiny[i].style.width="1px";
        tiny[i].style.height="1px";
    }
    if (tinyv[i])
    {
        tinyy[i]+=1+Math.random()*3;
        if (tinyy[i]<shigh+sdown)
        {
            tiny[i].style.top=tinyy[i]+"px";
            tinyx[i]+=(i%5-2)/5;
            tiny[i].style.left=tinyx[i]+"px";
        }
        else
        {
            tiny[i].style.visibility="hidden";
            tinyv[i]=0;
            return;
        }
    }
    else tiny[i].style.visibility="hidden";
}

document.onmousemove=mouse;
function mouse(e)
{
    set_scroll();
    y=(e)?e.pageY:event.y+sdown;
    x=(e)?e.pageX:event.x+sleft;
}

function set_scroll()
{
    if (typeof(self.pageYOffset)=="number")
    {
        sdown=self.pageYOffset;
        sleft=self.pageXOffset;
    }
    else if (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;
    }
}

window.onresize=set_width;
function set_width()
{
    if (typeof(self.innerWidth)=="number")
    {
        swide=self.innerWidth;
        shigh=self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientWidth)
    {
        swide=document.documentElement.clientWidth;
        shigh=document.documentElement.clientHeight;
    }
    else if (document.body.clientWidth)
    {
        swide=document.body.clientWidth;
        shigh=document.body.clientHeight;
    }
}

function createDiv(height, width)
{
  var div=document.createElement("div");
  div.style.position="absolute";
  div.style.height=height+"px";
  div.style.width=width+"px";
  div.style.overflow="hidden";


  couleur = "multicolore";
  if (couleur == 'multicolore')
  {
     Rouge = Math.floor(Math.random()*256) ;
     Vert = Math.floor(Math.random()*256) ;
     Bleu = Math.floor(Math.random()*256) ;
     div.style.backgroundColor="rgb("+Rouge+","+Vert+","+Bleu+")";
  }
  else
  {
     div.style.backgroundColor=couleur ;
  }
  return (div);
}

</script>
</head>

<body>
</body>
</html>


Tu pourras le modifier et le centraliser sur un élément en particulier.
Ici la puie d'étoile se fait sur toute la surface écran du navigateur. Aucun autre élément n'aura été ajouter.

Tu peut aussi placer les scripts de cette façon : Seul le premier script dois rester en entête de document.
Le deuxième peut être placer entre <body> et </body>

Code: Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="javascript" src="http://astuforum.free.fr/js/etoiles-cur.js">
</script>
</head>

<body>
<script type="text/javascript">
var sparkles=40;

var x=ox=400;
var y=oy=300;
var swide=800;
var shigh=600;
var sleft=sdown=0;
var tiny=new Array();
var star=new Array();
var starv=new Array();
var starx=new Array();
var stary=new Array();
var tinyx=new Array();
var tinyy=new Array();
var tinyv=new Array();

window.onload=function()
{
    if (document.getElementById)
    {
        var i, rats, rlef, rdow;
        for (var i=0; i<sparkles; i++)
        {
            var rats=createDiv(3, 3);
            rats.style.visibility="hidden";
            document.body.appendChild(tiny[i]=rats);
            starv[i]=0;
            tinyv[i]=0;
            var rats=createDiv(5, 5);
            rats.style.backgroundColor="transparent";
            rats.style.visibility="hidden";
            var rlef=createDiv(1, 5);
            var rdow=createDiv(5, 1);
            rats.appendChild(rlef);
            rats.appendChild(rdow);
            rlef.style.top="2px";
            rlef.style.left="0px";
            rdow.style.top="0px";
            rdow.style.left="2px";
            document.body.appendChild(star[i]=rats);
        }
        set_width();
        sparkle();
    }
}

function sparkle()
{
    var c;
    if (x!=ox || y!=oy)
    {
        ox=x;
        oy=y;
        for (c=0; c<sparkles; c++) if (!starv[c])
        {
            star[c].style.left=(starx[c]=x)+"px";
            star[c].style.top=(stary[c]=y)+"px";
            star[c].style.clip="rect(0px, 5px, 5px, 0px)";
            star[c].style.visibility="visible";
            starv[c]=50;
            break;
        }
    }
    for (c=0; c<sparkles; c++)
    {
        if (starv[c]) update_star(c);
        if (tinyv[c]) update_tiny(c);
    }
    setTimeout("sparkle()", 40);
}

function update_star(i)
{
    if (--starv[i]==25) star[i].style.clip="rect(1px, 4px, 4px, 1px)";
    if (starv[i])
    {
        stary[i]+=1+Math.random()*3;
        if (stary[i]<shigh+sdown)
        {
            star[i].style.top=stary[i]+"px";
            starx[i]+=(i%5-2)/5;
            star[i].style.left=starx[i]+"px";
        }
        else
        {
            star[i].style.visibility="hidden";
            starv[i]=0;
            return;
        }
    }
    else
    {
        tinyv[i]=50;
        tiny[i].style.top=(tinyy[i]=stary[i])+"px";
        tiny[i].style.left=(tinyx[i]=starx[i])+"px";
        tiny[i].style.width="2px";
        tiny[i].style.height="2px";
        star[i].style.visibility="hidden";
        tiny[i].style.visibility="visible"
    }
}

function update_tiny(i)
{
    if (--tinyv[i]==25)
    {
        tiny[i].style.width="1px";
        tiny[i].style.height="1px";
    }
    if (tinyv[i])
    {
        tinyy[i]+=1+Math.random()*3;
        if (tinyy[i]<shigh+sdown)
        {
            tiny[i].style.top=tinyy[i]+"px";
            tinyx[i]+=(i%5-2)/5;
            tiny[i].style.left=tinyx[i]+"px";
        }
        else
        {
            tiny[i].style.visibility="hidden";
            tinyv[i]=0;
            return;
        }
    }
    else tiny[i].style.visibility="hidden";
}

document.onmousemove=mouse;
function mouse(e)
{
    set_scroll();
    y=(e)?e.pageY:event.y+sdown;
    x=(e)?e.pageX:event.x+sleft;
}

function set_scroll()
{
    if (typeof(self.pageYOffset)=="number")
    {
        sdown=self.pageYOffset;
        sleft=self.pageXOffset;
    }
    else if (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;
    }
}

window.onresize=set_width;
function set_width()
{
    if (typeof(self.innerWidth)=="number")
    {
        swide=self.innerWidth;
        shigh=self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientWidth)
    {
        swide=document.documentElement.clientWidth;
        shigh=document.documentElement.clientHeight;
    }
    else if (document.body.clientWidth)
    {
        swide=document.body.clientWidth;
        shigh=document.body.clientHeight;
    }
}

function createDiv(height, width)
{
  var div=document.createElement("div");
  div.style.position="absolute";
  div.style.height=height+"px";
  div.style.width=width+"px";
  div.style.overflow="hidden";


  couleur = "multicolore";
  if (couleur == 'multicolore')
  {
     Rouge = Math.floor(Math.random()*256) ;
     Vert = Math.floor(Math.random()*256) ;
     Bleu = Math.floor(Math.random()*256) ;
     div.style.backgroundColor="rgb("+Rouge+","+Vert+","+Bleu+")";
  }
  else
  {
     div.style.backgroundColor=couleur ;
  }
  return (div);
}

</script>
</body>
</html>


Tout aussi fonctionnelle seulement la partie script est dans la balise body sauf pour le premier script qui lui cible le fichier .js en externe à l'adresse mentionner. La page reste blanche mais glisse ton curseur sur l'écran.

Il s'agit plutôt d'une pluie de l'opérateur +
Moi j'aurais mis l'opérateur *. M'enfin c'est une opinion personnelle.
Préfère le premier modèle que je t'ai donner.

++
zardoz
Plug'zien Star'z
Plug'zien Star'z
 
Messages: 888
Inscription: 16 Fév 2008, 04:05
Points: 582



Retourner vers Javascript

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités