Page 1 sur 2
[recherche] script neige compatible !
Publié : 07 déc. 2004, 15:56
par PierreFox
Bonjour,
Je suis à la recherche d'un script qui fait tomber de la neige, j'en avais trouvé un l'année dernière mais je me suis apercu qu'il ne fonctionnait pas sous firefox donc j'aimerais savoir si vous n'en aurez pas un à la fois jolie (car on trouve de tout pour les script de la neige) mais surtout qu'il soit compatible avec firefox !
Merci
Publié : 07 déc. 2004, 16:15
par jv2759
j'ai déjà vue une telle demande passer il y as quelque semaine...
Publié : 07 déc. 2004, 16:20
par PierreFox
jv2759 a écrit :j'ai déjà vue une telle demande passer il y as quelque semaine...
J'ai trouvé ceci avec la recherche :
http://www.geckozone.org/forum/viewtopi ... ight=neige
Mais ca me tente pas trop :s
Publié : 07 déc. 2004, 16:21
par PsyDk
J'en avais programmé un l'année dernière mais je n'en étais pas satisfait. Je vais peut-être le reprendre quand même cette année...
Le soucis c'est que c'était lent et y'avait des artefacts visuels pas très beaux sous Gecko. Opera s'en tirait pas mal. Sous IE le soucis c'est le position: fixed qui n'est pas reconnu.
Je vais voir si je fais un truc en position: absolute même si c'est moins sympa (genre le flocon qui part à côté influence la scrollbar du navigateur, bof bof).
Publié : 07 déc. 2004, 16:23
par jv2759
sinon recupérer l'exemple et l'apéliorer...
Publié : 07 déc. 2004, 17:47
par PierreFox
J'avais celui ci qui était simple, bien et donc pas trop lourd pour la page, seulement il n'est pas compatible avec firefox
Code : Tout sélectionner
<style>
.drop { position: absolute; width: 3; filter: flipV(), flipH(); font-size: 40; color: blue }
</style>
<script language=javascript>
snow = true; // false pour la pluie; true pour la neige
snowsym = " * "
rainsym = " ' "
howmany = 50
if(snow){sym = snowsym; speed=1; angle=10; drops=howmany}
else{sym = rainsym; speed=50; drops=howmany; angle=6}
movex = -speed/angle; movey = speed; count = 0;
function moverain(){
for(move = 0; move < drops; move++){
xx[move]+=movex; yy[move]+=mv[move];
hmm = Math.round(Math.random()*1);
if(xx[move] < 0){xx[move] = maxx+10;}
if(yy[move] > maxy){yy[move] = 10;}
drop[move].left = xx[move]
drop[move].top = yy[move]+document.body.scrollTop;
}setTimeout('moverain()','1')}
</script>
<script language=javascript>
if (document.all){
drop = new Array(); xx = new Array(); yy = new Array(); mv = new Array()
ly = "document.all[\'"; st = "\'].style"
for(make = 0; make < drops; make++){
document.write('<div id="drop'+make+'" class=drop>'+sym+'</div>');
drop[make] = eval(ly+'drop'+make+st);
maxx = document.body.clientWidth-40
maxy = document.body.clientHeight-40
xx[make] = Math.random()*maxx;
yy[make] = -100-Math.random()*maxy;
drop[make].left = xx[make]
drop[make].top = yy[make]
mv[make] = (Math.random()*5)+speed/4;
drop[make].fontSize = (Math.random()*10)+20;
if(snow){col = 'white'}else{col = 'blue'}
drop[make].color = col;
} window.onload=moverain }
</script>
Si quelqu'un pourrait me dire comment le rendre compatible cela m'arrangerais bien
Merci
Publié : 07 déc. 2004, 18:52
par jv2759
c'est le document.all que j'ai vue en gros en plein milieux de la pages, je pense qu'il faudrait le remplacer ce qui serais déjà pas mal...
Publié : 07 déc. 2004, 19:52
par PierreFox
jv2759 a écrit :c'est le document.all que j'ai vue en gros en plein milieux de la pages, je pense qu'il faudrait le remplacer ce qui serais déjà pas mal...
Quelqu'un s'y connait dans le coin ?
Si je remplace le document.all par document.getElementById&&!document.all) a ce moment là cela fonctionne sous firefox mais pas sous IE... comment rendre compatible les deux ?
Publié : 07 déc. 2004, 20:55
par calimo
Ben simplement avec document.getElementById...
Là vu que tu as !document.all l'expression devient fausse si document.all est vrai, donc c'est tout à fait logique que ça ne marche pas sous IE (souviens-toi de tes cours de maths

)
Publié : 07 déc. 2004, 22:03
par PierreFox
Oui merci c'est bon (je vais le mettre pour l'instant) mais ... je suis partit à la recherche d'un autre script, qui serait simple et pas mal, je suis tombé là-dessus :
http://www.dseffects.com/scriptsfx/DS_Snow/DS_Snow.html
Il est compatible, leger et pas mal je trouve sauf que voilà il affiche une espère de bannière en haut à droite et le code est très bizarre, j'aimerais encore demander de l'aide (je sais ca fait bcp ...)
Voici comment le code est fait :
- une partie entre les balises body de la page :
Code : Tout sélectionner
<script language="JavaScript" type=text/javascript>
var author="www.dseffect.com";
var numflakes="40";
var speed="2";
var flakesize="2";
var regkey="";
</script>
<script src="_pgtres/DS_Snow.js"></script>
- une autre partie dans le fchier DS_Snow.js dont voici le contenu (très encombre) :
Code : Tout sélectionner
var O5P=numflakes>>1; var _Dj=numflakes>>1; var RRK=speed<<1; var ac4=RRK>>1; var Qx4=flakesize<<1; var rDH=Qx4>>1; var Uy0=regkey;if(author!="www.dseffects.com")alert("Please don't remove\r\nvar author=\"www.dseffects.com\";"); var ANG=0; var j_V=new Array(); var mF_=new Array(); var pYj=new Array(); var eio=new Array(); var SNW=new Array(); var xLK=new Array(); var Zim=new Array(); var X6N=new Array(); var Dwa=O5P<<1; var Y2Z; var aw8; var TnY=new Array("ffffff","f8f8f8","f0f0f0","e8e8e8","e0e0e0","c8c8c8"); var FoE; var ClO; var dSX; var tXl; var Y0w; var KnG; var y3G; var WsH; var uEh; var W_B; var iCJ; var PGs=150; var u42=PGs+8; var yZh=1; var jPf=0; var Zy2=0; var wvP=(document.layers)?1:0; var cYF=(document.all)?1:0; var mxL=(document.getElementById&&!document.all); var ht_=(cYF)?window.document.body.clientWidth:window.innerWidth; var wl1=(cYF)?window.document.body.clientHeight:window.innerHeight; var RV2=(cYF)?window.document.body.scrollLeft:window.pageXOffset; var BRz=(cYF)?window.document.body.scrollTop:window.pageYOffset; var JxQ='k66b'; var fGl=JxQ.split(''); var rsD='c5-a'; var mK1=rsD.split(''); var CLG=':/'+'/'; var Qp7='r-crrc'; var EHS=Qp7.split(''); var noN=jPf; var M3_='eeesf23hh3r62sray'; var ThU=M3_.split(''); var w01='r5-b6'; var q5n=w01.split(''); var n4N='v7'; var msB='9fg7hjklz6xc.v8bn1m0'; var r3t=n4N.split(''); var KvW='q2se4rtyu3i5opa-wd'+msB; var Q8u=KvW.split(''); var G7w=''; var BP5='ible'; var vpp='abcdefghijklmnopqrstuvwxyz'; var JVl='ank'; var GfG=Uy0.length; var d5J='0123456789-.'; var w2v=Uy0.split(''); var FDe='den'; var IXf=d5J+vpp; var Vo_=IXf.split(''); var _Za='hid'; var gEs='bl'; var NjM='vis'; var Qr0=''; var hPJ=location.host; var IIO=hPJ.toLowerCase(); var xy7=IIO.split(''); var bCw='ow'; var DJM='e'; var BgE='sh';for(Zy2=0;Zy2<5;Zy2++)G7w+=Q8u[IXf.indexOf(q5n[Zy2])]; iCJ='S'+G7w;G7w='';for(Zy2=0;Zy2<17;Zy2++)G7w+=Q8u[IXf.indexOf(ThU[Zy2])]; KnG=G7w;uEh='_'+gEs+JVl;G7w=' ';for(Zy2=0;Zy2<2;Zy2++)G7w+=Q8u[IXf.indexOf(r3t[Zy2])]; iCJ+=G7w;G7w=' D';for(Zy2=0;Zy2<4;Zy2++)G7w+=Q8u[IXf.indexOf(mK1[Zy2])]; iCJ+=G7w;G7w=' S';for(Zy2=0;Zy2<6;Zy2++)G7w+=Q8u[IXf.indexOf(EHS[Zy2])]; iCJ+=G7w;G7w='';for(Zy2=0;Zy2<4;Zy2++)G7w+=Q8u[IXf.indexOf(fGl[Zy2])]; y3G=G7w;G7w='';for(Zy2=2;Zy2<GfG-2;Zy2++)G7w+=Q8u[IXf.indexOf(w2v[Zy2])]; if(xy7.length>4)if(xy7[0]!='w'&&xy7[3]!='.'&&xy7[2]!='w'&&xy7[1]!='w')Qr0='www.'+hPJ; else Qr0=hPJ;WsH=y3G+CLG+KnG;FoE=BgE+bCw;ClO=_Za+FDe;if(Qr0==G7w)noN=yZh;if(Q8u[GfG>>1]!=w2v[0]||Q8u[GfG]!=w2v[1]||Q8u[GfG]!=w2v[GfG-2]||Q8u[GfG>>2]!=w2v[GfG-1])noN=jPf;dSX=_Za+DJM;tXl=NjM+BP5; document.write('<style>td.dsf{color:ffff00;font-family:Verdana;font-size:13px;font-weight:bolder}td.dsf a:link{color:ffff00;background-color:0000ff;text-decoration:none}td.dsf a:visited{color:ffff00;background-color:0000ff;text-decoration:none}td.dsf a:hover{color:ffffff;background-color:0000ff;text-decoration:none}</style><div id="dsC"style="position:absolute;top:0px;left:0px;width:0px;height:0px;visibility:hide;visibility:hidden;z-Index:1000;"align="center"><table border="1"bordercolor="#000000"cellpadding="1" cellspacing="0" bgcolor="#0000ff"><td class="dsf"align="center"><a href=\''+WsH+'\'target=\''+uEh+'\'>'+KnG+'</a></td></table></div>'); function XXJ(){window.status =iCJ; return true;}if(KnG.charAt(4)!='d')noN=jPf; function cWL(){window.status =''; return true;} function XoT(){;if(noN==jPf){if(wvP){W_B=document.dsC; W_B.visibility=dSX;W_B.top=(BRz+8);W_B.left=(ht_+RV2-u42);W_B.visibility=FoE;W_B.onmouseover=XXJ;W_B.onmouseout=cWL;} else if(mxL){W_B=document.getElementById("dsC"); W_B.style.top=BRz+8;W_B.style.left=(ht_+RV2-u42-8);W_B.style.visibility=tXl;W_B.onmouseover=XXJ;W_B.onmouseout=cWL;} else if(cYF){W_B=document.all.dsC; W_B.style.top=BRz+8;W_B.style.left=(ht_+RV2-u42);W_B.style.visibility=tXl;W_B.onmouseover=XXJ;W_B.onmouseout=cWL;}}}if(wvP){if(rDH==1){Y2Z="28";} else if(rDH==2){Y2Z="36";} else {Y2Z="42";}for(Zy2=0;Zy2<O5P;Zy2++){aw8=TnY[Zy2%6]; document.write('<LAYER NAME=\'sn'+Zy2+'\'visibility="hide"><font face=\'Courier New\'size='+Y2Z+'color='+aw8+'>.</font></LAYER>');}if(rDH==1){Y2Z="32";} else if(rDH==2){Y2Z="40";} else {Y2Z="50";}for(Zy2=0;Zy2<_Dj;Zy2++){aw8=TnY[Zy2%6]; document.write('<LAYER NAME=\'ln'+Zy2+'\'visibility="hide"><font face=\'Courier New\'size='+Y2Z+'color='+aw8+'>.</font></LAYER>');}} else if(mxL){window.document.body.style.overflow='hidden'; if(rDH==1){Y2Z="28px";} else if(rDH==2){Y2Z="36px";} else {Y2Z="42px";}for(Zy2=0;Zy2<O5P;Zy2++){aw8=TnY[Zy2%6]; document.write('<div id=\'sg'+Zy2+'\'style=\'position:absolute;top:0;left:0;width:4px;height:4px;visibility:hidden;font-family:Courier New;font-size:'+Y2Z+';color:'+aw8+'\'>.</div>');}if(rDH==1){Y2Z="32px";} else if(rDH==2){Y2Z="40px";} else {Y2Z="50px";}for(Zy2=0;Zy2<_Dj;Zy2++){aw8=TnY[Zy2%6]; document.write('<div id=\'lg'+Zy2+'\'style=\'position:absolute;top:0;left:0;width:6px;height:6px;visibility:hidden;font-family:Courier New;font-size:'+Y2Z+';color:'+aw8+'\'>.</div>');}} else if(cYF){if(rDH==1){Y2Z="28px";} else if(rDH==2){Y2Z="36px";} else {Y2Z="42px";} document.write('<div style="position:absolute;top:0px;left:0px">'); document.write('<div style="position:relative">');for(Zy2=0;Zy2<O5P;Zy2++){aw8=TnY[Zy2%6]; document.write('<div id=\'si\'style=\'position:absolute;top:0;left:0;width:4px;height:4px;visibility:hidden;font-family:Courier New;font-size:'+Y2Z+';color:'+aw8+'\'>.</div>');} document.write('</div>'); document.write('</div>'); if(rDH==1){Y2Z="32px";} else if(rDH==2){Y2Z="40px";} else {Y2Z="50px";} document.write('<div style="position:absolute;top:0px;left:0px">'); document.write('<div style="position:relative">');for(Zy2=0;Zy2<_Dj;Zy2++){aw8=TnY[Zy2%6]; document.write('<div id=\'li\'style=\'position:absolute;top:0;left:0;width:6px;height:6px;visibility:hidden;font-family:Courier New;font-size:'+Y2Z+';color:'+aw8+'\'>.</div>');} document.write('</div>'); document.write('</div>'); }for(Zy2=0;Zy2<O5P;Zy2++){j_V[Zy2]=Math.round(Math.random()*ht_); mF_[Zy2]=Math.round(Math.random()*wl1); pYj[Zy2]=(Math.random()-0.5)*speed; eio[Zy2]=-1;}for(Zy2=0;Zy2<_Dj;Zy2++){SNW[Zy2]=Math.round(Math.random()*ht_); xLK[Zy2]=Math.round(Math.random()*wl1); Zim[Zy2]=(Math.random()-0.5)*speed; X6N[Zy2]=-1;} function QEy(){ht_=(cYF)?window.document.body.clientWidth:window.innerWidth; wl1=(cYF)?window.document.body.clientHeight:window.innerHeight; RV2=(cYF)?window.document.body.scrollLeft:window.pageXOffset; BRz=(cYF)?window.document.body.scrollTop:window.pageYOffset; ANG++;ANG=(ANG>Dwa)?Dwa:ANG;for(var j=0;j<O5P;j++){d=(Math.random()+Math.random())-1.0; pYj[j]+=(RRK*d);if(pYj[j]>RRK)pYj[j]=RRK; else if(pYj[j]<-RRK)pYj[j]=-RRK;j_V[j]+=pYj[j];j_V[j]=(j_V[j]+ht_)%ht_;mF_[j]=mF_[j]+(ac4+Math.random()*3); if(mF_[j]>=wl1){if(j<ANG)eio[j]=0; else eio[j]=-1;mF_[j]=-10;pYj[j]*=-1;}if(eio[j]==0){if(wvP){ document.layers['sn'+j].left=j_V[j]; document.layers['sn'+j].top=mF_[j]+BRz; document.layers['sn'+j].visibility='show'; }if(mxL){ document.getElementById("sg"+j).style.left=j_V[j]; document.getElementById("sg"+j).style.top=mF_[j]+BRz; document.getElementById("sg"+j).style.visibility='visible'; } else if(cYF){si[j].style.pixelLeft=j_V[j];si[j].style.pixelTop=mF_[j]+BRz;si[j].style.visibility='visible';}}}for(var j=0;j<_Dj;j++){d=(Math.random()+Math.random())-1.0; Zim[j]+=(RRK*d);if(Zim[j]>RRK)Zim[j]=RRK; else if(Zim[j]<-RRK)Zim[j]=-RRK;SNW[j]+=Zim[j];SNW[j]=(SNW[j]+ht_)%(ht_-1);xLK[j]=xLK[j]+(ac4+Math.random()*3);if(xLK[j]>=wl1-1){if(j<ANG)X6N[j]=0; else X6N[j]=-1;xLK[j]=-10;Zim[j]*=-1;}if(X6N[j]==0){if(wvP){ document.layers['ln'+j].left=SNW[j]; document.layers['ln'+j].top=xLK[j]+BRz; document.layers['ln'+j].visibility='show'; }if(mxL){ document.getElementById("lg"+j).style.left=SNW[j]; document.getElementById("lg"+j).style.top=xLK[j]+BRz; document.getElementById("lg"+j).style.visibility='visible'; } else if(cYF){li[j].style.pixelLeft=SNW[j];li[j].style.pixelTop=xLK[j]+BRz;li[j].style.visibility='visible';}}}XoT();} function Qv_(){QEy();setTimeout('Qv_()',20);}window.onload=Qv_; window.onresize = new Function("window.location.reload()");
Si quelqu"un peut m'aider à déchiffrer un peu tout cela et à supprimer ce qui est superflue (comme cette bannière) ! Merci
Pierre
Publié : 07 déc. 2004, 22:11
par calimo
Le script a été volontairement "crypté" pour qu'il ne puisse pas être modifié

Publié : 07 déc. 2004, 22:15
par PierreFox
calimo a écrit :Le script a été volontairement "crypté" pour qu'il ne puisse pas être modifié

Ca me ...

pourquoi les gens font ca ?
Publié : 07 déc. 2004, 22:24
par PierreFox
calimo a écrit :Ben simplement avec document.getElementById...
Là vu que tu as !document.all l'expression devient fausse si document.all est vrai, donc c'est tout à fait logique que ça ne marche pas sous IE (souviens-toi de tes cours de maths

)
J'ai fais la modification mais regardes :
www.bar-mafieuso.fr.st
Faites l'essai sous IE et sous Firefox, c'est très lent sous firefox chez moi :s
Publié : 08 déc. 2004, 08:22
par jv2759
J'ai regarder, cela me donne l'impretion que tu crée des objet sans libérer la mémoire.
Publié : 08 déc. 2004, 13:24
par PierreFox
jv2759 a écrit :J'ai regarder, cela me donne l'impretion que tu crée des objet sans libérer la mémoire.
Oui possible ... il faudrait editer le code mais je ne m'y connais vraiment pas
