Modifié neige en hiver

Résolu
cs_vollibre Messages postés 5 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 28 novembre 2006 - 27 nov. 2006 à 11:25
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 28 nov. 2006 à 18:02
Bonjour à tous
Voila j'ai decidé de mettre un peut les mains dans le cambuit :)
et déja j'ai un petit soucis qui je pense dois etre tres simple a regler pour la majorité des gens qui frequente ce forum.

utilisateur depuis quelques temps du script http://www.javascriptfr.com/code.aspx?ID=16244
neige en hiver, feuille en automne ... j'aurais aimé modifié les evenements non plus par saison mais par certain evenement bien precis (noel, nouvel an, fêtes des meres, st valentin etc...)
jusqu'ici pas trop de soucis :)
mais mon probleme est que entre deux evenements j'aimerai qu'il ne se passe rien.
là dans l'etat actuel des choses entre deux evenement j'ai des carré vides qui descendent  de l'ecran :( (javascript/neige3/gif/undefined1.gif)
Pour un peut plus de clarté de mes propos je vous joins une copie du script que je modifie.
Merci d'avance pour votre aide.

<SCRIPT LANGUAGE="javascript1.2">
<!--- hide script from old browsers
var nbimg = 18;
var typeimg;
var coordx=new Array(nbimg);
var coordy=new Array(nbimg);
var vity=new Array(nbimg);
var temx=new Array(nbimg);
var decx=new Array(nbimg);
var img=1;
var date=new Date();
var jour=date.getDate();
var mois=date.getMonth()+1;


// si on est le 27 novembre et le avant le 28 novembre
if (((jour>=27) && (mois==11))&&((jour<=30) && (mois==11))) {typeimg="noel";}
// PROBLEME entre le 30 novembre et le 20 decembre j'ai des images vides qui apparaisse a l'ecran !!! :(
if (((jour>=20) && (mois==12))&&((jour<=27) && (mois==12))) {typeimg="soleil";}




// if (condition réalisé) { liste d'instructions }
// else { autre série d'instructions }


// exemple pour le printemps= if (((mois==3) && (jour>=20)) || ((mois==6) && (jour<20)) || ((mois>3) && (mois<6))) {typeimg="fleur";}
// evenement a programmer :
// noel du 20 au 27 decembre
if (((jour>=20) && (mois==12))&&((jour<=27) && (mois==12))) {typeimg="noel";}
// nouvel an du 30 decembre au 7 janvier
if (((jour>=30) && (mois==12))&&((jour<=7) && (mois==1))) {typeimg="an";}
// st valentin le
if (((jour>=13) && (mois==2))&&((jour<=15) && (mois==2))) {typeimg="coeur";}
// fetes des meres du        au                & peres du             au
if (((jour>=25) && (mois==5))&&((jour<=30) && (mois==5))) {typeimg="mam";}
if (((jour>=15) && (mois==6))&&((jour<=20) && (mois==6))) {typeimg="padre";}
// 14 juillet le
if (((jour>=13) && (mois==7))&&((jour<=15) && (mois==7))) {typeimg="nation";}
//  halloween
if (((jour>=5) && (mois==11))&&((jour<=10) && (mois==11))) {typeimg="citrouille";}
// sainte catherine le
if (((jour>=24) && (mois==11))&&((jour<=27) && (mois==11))) {typeimg="fleur";}
function InitNeige()
{
if ((document.all)||(document.getElementById)
{
/*pour ceux qui veulent que l'élément(neige, feuille, soleil, fleur) aille jusqu'a la fin de la page
(dans le cas ou on a une page plus grande que la taille du client(partie visible) =>  tailley = document.body.clientHeight)
quand on a le scrollBar qui s'affiche, c'est de recalculer la taille en remplacant


document.body.clientHeight
par
(Math.max(document.body.scrollHeight, document.body.offsetHeight))


j'ai laissé volontairement les parenthèse de début et de fin pour rajouter une opération
sois -X (ou X est une valeur décimal ou réelle, pour que ca s'arrete a X de la fin de page)
ou +X (pour que ca s'arrete apres la page ce qui fera agrandir le scrollBar) soit :


(Math.max(document.body.scrollHeight, document.body.offsetHeight)) - 10
ou
(Math.max(document.body.scrollHeight, document.body.offsetHeight)) + 10*/
// ou (Math.max(document.body.scrollHeight, document.body.offsetHeight)) ou  document.body.clientHeight;
tailley = (Math.max(document.body.scrollHeight, document.body.offsetHeight)) - 350 
taillex = document.body.clientWidth;
offsety = document.body.scrollTop;
offsetx = document.body.scrollLeft;
var vara="DIV ID";
var varb="/DIV";
var styl='style="position:absolute;left:0px;top:0px;width:1px;height:1px;visibility:visible;"';
}
else
{
tailley = window.innerHeight;
taillex = window.innerWidth;
offsety = window.pageYOffset;
offsetx = window.pageXOffset;
var vara="LAYER NAME";
var varb="/LAYER";
var styl="";
}


for (i=0;i<nbimg;i++)
{
// chaine='<'+vara+'="image'+i+'" '+styl+'><'+varb+'>';
chaine='<'+vara+'="image'+i+'" '+styl+'><'+varb+'>';
document.write(chaine);
coordx[i]=80+(Math.random()*taillex-160);
coordy[i]=i*(tailley/(nbimg-1));
vity[i]=img; temx[i]=(Math.random()*19);
decx[i]=0;
img+=1;
if (img>3)
{
img=1;
}
}
}
 
function neige()
{
for (i=0;i<nbimg;i++)
{
if (document.getElementById) { //IE5 et NS6
eval('document.getElementById("image"+i).style.top ='+ coordy[i]+';');
eval('document.getElementById("image"+i).style.left ='+ coordx[i]+';');
}
if ((document.all)&&(!document.getElementById)) { //IE4 seulelement
eval ('document.all.image'+i+'.style.top = coordy[i];');
eval ('document.all.image'+i+'.style.left = coordx[i];');
}
if (document.layers) { //NS4.X seulement
eval('document.layers["image"+i].top=top;');
}


temx[i]+=1


if (temx[i]>20)
{
decx[i]=1-(Math.random()*2);
temx[i]=0;
}


coordx[i]+=decx[i];
coordy[i]+=vity[i];
maxi=tailley+offsety;


if (coordy[i]>maxi) {coordx[i]=80+(Math.random()*taillex-160);coordy[i]=-100;}
}


tempo = setTimeout("neige()", 50);
}
 
// end hiding --->
</script>



<script>InitNeige()</script>


PS: je ne c'est pas si j'ai bien posté dans la bonne section si ce n'est pas le cas désolé, qu'un modo le deplace dans la section approprié.

4 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
28 nov. 2006 à 14:07
B

onjour...

je mettrais plutôt
if(((jour>= 30)&&(mois==12)) || ((jour< =7)&&(mois==1)))

;0)
3
cs_vollibre Messages postés 5 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 28 novembre 2006
28 nov. 2006 à 10:40
Salut<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>



 




Bon j'ai pus régler le problème d'affichage d'image inexistante (avec la croix rouge) en créant trois petites images transparentes nommées (undefined1.gif, undefined2.gif et undefined3.gif)


Certes cela est un peut triché mais cela permet de ne rien affiché entre deux événements


le changement d'image entre chaque événement se déroule parfaitement


Excepté pour l'événement "nouvel an" ou rien ne se passe ?? et je ne comprend pas pourquoi.


Help!!



 




// nouvel an du 30 décembre au 7 janvier


if (((jour>=30) && (mois==12))&&((jour<=7) && (mois==1))) {typeimg="anne";}



 




Y voyait vous une anomalies ??
0
cs_vollibre Messages postés 5 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 28 novembre 2006
28 nov. 2006 à 17:56
Salut
Merci et trés bien vue PetoleTeam.
|| que je n'est pas été bon sur ce coup là, promis je vais m'interesser beaucoup plus au javascript (ça me plais assés bien ce truc là :) )
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
28 nov. 2006 à 18:02
Rassures toi, j'ai été bien pire des fois et comme le dit le vieux dicton caucasien c'est en forgeant que l'on devient vachement fatigué...



;0)
0
Rejoignez-nous