/****************************************** * Titre: De la neige !!! * Réécrit par Spacefrog * Date: 12/2009 ******************************************/ var IsIE6 = (!!document.all && !window.XMLHttpRequest) //var ext= (/(?!=compatible;\s)MSIE\s6/i.test(navigator.userAgent))?'gif':'png'; var ext = (IsIE6) ? 'gif' : 'png'; var IsIE = !!document.all; var snowsrc = new Image(); snowsrc.src = "images/snowflake." + ext var snowsrc1 = new Image; snowsrc1.src = "images/snowflake1." + ext // Configure below to change number of snow to render var densite = 50; var dx, xp, yp; // coordinate and position variables var am, vx, vy; // amplitude and step variables var i, doc_width, doc_height; var vitesseH = 1 //coefficient de vitesse de balancement var changevent = true // pour ajouter la variation du sens et de l'intesité du vent var vent = new Array(10, 0, -10, -20, 0, -5, -10, -5, -3, 0, 2, 3, 5, 10, 20, 30, 50, 60, 80, 70, 50, 30, 10, 0, -1, -5, -10, -20); //Vent de travers positif=> G à D _ négatif => D à G. var forceH = 0; var drift = 10; var changechute = true var chute = new Array(1, 2, 3, 2, 1, 1, 2, 3, 4, 5, 4, 3, 5, 4, 6, 4, 2, 3, 2, 1, 1, 1, 1, 1, 1) //Vitesse de chute des flocons de 1 à 10 var forceV = 0 var vitesseV = 1 //coefficient de vitesse de chute dx = new Array(); xp = new Array(); yp = new Array(); am = new Array(); vx = new Array(); function init() { if (self != parent) { document.body.parentNode.parentNode.firstChild.nodeValue = 'doctype HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"'; } doc_width = (self != top) ? top.frames[0].document.body.offsetWidth : self.document.body.offsetWidth; doc_height = (self != top) ? top.frames[0].document.body.offsetHeight : self.document.body.offsetHeight; densite = Math.floor(doc_width / 12); var flake = document.createElement('img'); flake.style.border = '0'; flake.style.width = "auto"; flake.style.height = "auto"; flake.style.position = 'absolute'; flake.style.top = '15px'; flake.style.left = '15px'; flake.style.display = "none"; //Position des flocons var i = 0; while (i < densite) { dx[i] = 0; // set coordonnés variables xp[i] = Math.random() * (doc_width - 50); // positions variables yp[i] = Math.random() * doc_height; am[i] = Math.random() * 40; // amplitude de balancement vx[i] = 0.02 + Math.random() / 10 * vitesseH; // vitesse horizontale variable vy[i] = 0.9 + Math.random() * vitesseV; // vitesse verticale variable var opacite = Math.random() * 100; var newflake = flake.cloneNode(true); newflake.id = "flocon" + i; newflake.zIndex = i + 1; newflake.src = (i % 2 == 0) ? snowsrc.src : snowsrc1.src; if (!document.all) { newflake.style.height = 20 - (Math.floor((Math.random() * 8))) + "px" } IsIE ? newflake.style.filter = "alpha(opacity=" + opacite + ")" : newflake.style.opacity = opacite / 100; document.body.appendChild(newflake); i++ } var neige = setInterval(function() { snow() }, 30); if (changevent == true) { var girouette = setInterval(wind, 4250); } if (changechute == true) { var intesite = setInterval(fall, 7130); } } function wind() { drift = vent[forceH] forceH++ forceH = (forceH > vent.length) ? 0 : forceH; } function fall() { vitesseV = chute[forceV] forceV++ forceV = (forceV > chute.length - 1) ? 0 : forceV; } function snow() { //doc_width = document.body.offsetWidth; //doc_height = document.body.offsetHeight; doc_width = (self != top) ? top.frames[0].document.body.offsetWidth : document.body.offsetWidth; doc_height = (self != top) ? top.frames[0].document.body.offsetHeight : document.body.offsetHeight; var i = 0; while (i < densite) { yp[i] += vy[i]; if (yp[i] > doc_height - 20) { xp[i] = (Math.random() * (doc_width - am[i] - 30)); yp[i] = 0; vx[i] = (0.02 + Math.random() / 10) * vitesseH; vy[i] = (0.7 + Math.random()) * vitesseV; } dx[i] += vx[i]; document.getElementById("flocon" + i).style.display = "block" document.getElementById("flocon" + i).style.top = yp[i] + "px"; if (drift > 0) { xp[i] = ((xp[i] + drift / 10) > doc_width) ? -40 : xp[i] + drift / 10; } if (drift < 0) { xp[i] = ((xp[i] + drift / 10) < -40) ? doc_width : xp[i] + drift / 10; } document.getElementById("flocon" + i).style.left = xp[i] + am[i] * Math.sin(dx[i]) + "px"; i++ } }