Sinon moi cette année j'ai opté pour ce script
voir iciEn revanche j'ai préféré héberger l'intégralité du script.
Voir le résultat
sur mon site.
L'intérêt c'est que ce script et compatible avec quasiment tout les navigateurs web et surtout firefox.
L'autre avantage c'est qu'il n'est pas trop envahissant visuellement.
A+
Fabien
ps: je place le script suivant directement dans un bloc, ce qui me permet de n'afficher la neige que sur la page souhaitée.
<!-- Start Snow-->
<script language="javascript" src="http://www.monsite.com/neige.php"></script>
<!-- End Snow-->
contenu du fichier neige.php:
var snowmax=35
var snowcolor=new Array("#aaaacc","#ddddFF","#ccccDD")
var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS")
var snowletter="*"
var sinkspeed=0.8
var snowmaxsize=30
var snowminsize=10
var snowingzone=1
///////////////////////////////////////////////////////////////////////////
// N'éditez pas au-dessous de cette ligne
var snow=new Array()
var marginbottom;
var marginright;
var timer;
var i_snow=0;
var x_mv=new Array();
var crds=new Array();
var lftrght=new Array();
var browserinfos=navigator.userAgent ;
var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/);
var ns6=document.getElementById&&!document.all;
var opera=browserinfos.match(/Opera/) ;
var browserok=ie5||ns6||opera;
function randommaker(range) {
rand=Math.floor(range*Math.random());
return rand;
}
function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}
function initsnow() {
if (ie5 || opera) {
marginbottom = iecompattest().clientHeight;
marginright = iecompattest().clientWidth;
}
else if (ns6) {
marginbottom = self.innerHeight;
marginright = self.innerWidth;
}
var snowsizerange=snowmaxsize-snowminsize;
for (i=0;i<=snowmax;i++) {
crds[i] = 0;
lftrght[i] = Math.random()*15;
x_mv[i] = 0.03 + Math.random()/10;
snow[i]=document.getElementById("s"+i);
snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)];
snow[i].size=randommaker(snowsizerange)+snowminsize;
snow[i].style.fontSize=snow[i].size+ "px";
snow[i].style.color=snowcolor[randommaker(snowcolor.length)];
snow[i].sink=sinkspeed*snow[i].size/5;
if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size);
snow[i].style.left=snow[i].posx + "px";
snow[i].style.top=snow[i].posy+ "px";
}
movesnow();
}
function movesnow() {
for (i=0;i<=snowmax;i++) {
crds[i] += x_mv[i];
snow[i].posy+=snow[i].sink;
snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i])+ "px";
snow[i].style.top=snow[i].posy+ "px";
if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
snow[i].posy=0;
}
}
var timer=setTimeout("movesnow()",50);
}
function hidesnow(){
if (window.timer) clearTimeout(timer);
for (i=0; i<=snowmax; i++) document.getElementById("s"+i).style.visibility="hidden";
}
for (i=0;i<=snowmax;i++) {
document.write("<div id="s"+ i +"" style="POSITION: absolute; Z-INDEX: 9"+ i +"; VISIBILITY: visible; TOP:-"+snowmaxsize+"px; LEFT: 15px;">"+snowletter+"</div>");
}
if (browserok) {
initsnow();
}else {
document.write("Votre navigateur ne supporte pas ce Javascript, <a href="http://forum.topflood.com">Top Flood</a>");
}