AccueilFAQRechercherMembresGroupesS'enregistrerConnexion

Partagez | 
 

 PLUIE DE CONFETTIS

Aller en bas 
AuteurMessage
Admin
Admin
avatar

Messages : 38
Date d'inscription : 11/06/2008

MessageSujet: PLUIE DE CONFETTIS    Dim 28 Jan - 19:10


A coller dans gestion des codes javascripts

Code:

$(document).ready(function() {
//by Markus Tran

  var onlyOnKonami = false;
  $(function() {
    var $window = $(window), random = Math.random, cos = Math.cos, sin = Math.sin, PI = Math.PI, PI2 = PI * 2, timer = undefined, frame = undefined, confetti = [];
    var konami = [38, 38, 40, 40, 37, 39, 37, 39, 66, 65], pointer = 0;
    var particles = 150, spread = 40, sizeMin = 3, sizeMax = 12 - sizeMin, eccentricity = 10, deviation = 100, dxThetaMin = -.1, dxThetaMax = -dxThetaMin - dxThetaMin, dyMin = .13, dyMax = .18, dThetaMin = .4, dThetaMax = .7 - dThetaMin;
    var colorThemes = [function() {
      return color(200 * random() | 0, 200 * random() | 0, 200 * random() | 0);
    }, function() {
      var black = 200 * random() | 0;
      return color(200, black, black);
    }, function() {
      var black = 200 * random() | 0;
      return color(black, 200, black);
    }, function() {
      var black = 200 * random() | 0;
      return color(black, black, 200);
    }, function() {
      return color(200, 100, 200 * random() | 0);
    }, function() {
      return color(200 * random() | 0, 200, 200);
    }, function() {
      var black = 256 * random() | 0;
      return color(black, black, black);
    }, function() {
      return colorThemes[random() < .5 ? 1 : 2]();
    }, function() {
      return colorThemes[random() < .5 ? 3 : 5]();
    }, function() {
      return colorThemes[random() < .5 ? 2 : 4]();
    }];
    function color(r, g, b) {
      return "rgb(" + r + "," + g + "," + b + ")";
    }
    function interpolation(a, b, t) {
      return (1 - cos(PI * t)) / 2 * (b - a) + a;
    }
    var radius = 1 / eccentricity, radius2 = radius + radius;
    function createPoisson() {
      var domain = [radius, 1 - radius], measure = 1 - radius2, spline = [0, 1];
      while (measure) {
        var dart = measure * random(), i, l, interval, a, b, c, d;
        for (i = 0, l = domain.length, measure = 0; i < l; i += 2) {
          a = domain[i], b = domain[i + 1], interval = b - a;
          if (dart < measure + interval) {
            spline.push(dart += a - measure);
            break;
          }
          measure += interval;
        }
        c = dart - radius, d = dart + radius;
        for (i = domain.length - 1; i > 0; i -= 2) {
          l = i - 1, a = domain[l], b = domain[i];
          if (a >= c && a < d) {
            if (b > d) {
              domain[l] = d;
            } else {
              domain.splice(l, 2);
            }
          } else {
            if (a < c && b > c) {
              if (b <= d) {
                domain[i] = c;
              } else {
                domain.splice(i, 0, c, d);
              }
            }
          }
        }
        for (i = 0, l = domain.length, measure = 0; i < l; i += 2) {
          measure += domain[i + 1] - domain[i];
        }
      }
      return spline.sort();
    }
    var container = document.createElement("div");
    container.style.position = "fixed";
    container.style.top = "0";
    container.style.left = "0";
    container.style.width = "100%";
    container.style.height = "0";
    container.style.overflow = "visible";
    container.style.zIndex = "9999";
    function Confetto(theme) {
      this.frame = 0;
      this.outer = document.createElement("div");
      this.inner = document.createElement("div");
      this.outer.appendChild(this.inner);
      var outerStyle = this.outer.style, innerStyle = this.inner.style;
      outerStyle.position = "absolute";
      outerStyle.width = sizeMin + sizeMax * random() + "px";
      outerStyle.height = sizeMin + sizeMax * random() + "px";
      innerStyle.width = "100%";
      innerStyle.height = "100%";
      innerStyle.backgroundColor = theme();
      outerStyle.perspective = "50px";
      outerStyle.transform = "rotate(" + 360 * random() + "deg)";
      this.axis = "rotate3D(" + cos(360 * random()) + "," + cos(360 * random()) + ",0,";
      this.theta = 360 * random();
      this.dTheta = dThetaMin + dThetaMax * random();
      innerStyle.transform = this.axis + this.theta + "deg)";
      this.x = $window.width() * random();
      this.y = -deviation;
      this.dx = sin(dxThetaMin + dxThetaMax * random());
      this.dy = dyMin + dyMax * random();
      outerStyle.left = this.x + "px";
      outerStyle.top = this.y + "px";
      this.splineX = createPoisson();
      this.splineY = [];
      for (var i = 1, l = this.splineX.length - 1; i < l; ++i) {
        this.splineY[i] = deviation * random();
      }
      this.splineY[0] = this.splineY[l] = deviation * random();
      this.update = function(height, delta) {
        this.frame += delta;
        this.x += this.dx * delta;
        this.y += this.dy * delta;
        this.theta += this.dTheta * delta;
        var phi = this.frame % 7777 / 7777, i = 0, j = 1;
        while (phi >= this.splineX[j]) {
          i = j++;
        }
        var rho = interpolation(this.splineY[i], this.splineY[j], (phi - this.splineX[i]) / (this.splineX[j] - this.splineX[i]));
        phi *= PI2;
        outerStyle.left = this.x + rho * cos(phi) + "px";
        outerStyle.top = this.y + rho * sin(phi) + "px";
        innerStyle.transform = this.axis + this.theta + "deg)";
        return this.y > height + deviation;
      };
    }
    function poof() {
      if (!frame) {
        document.body.appendChild(container);
        var theme = colorThemes[onlyOnKonami ? colorThemes.length * random() | 0 : 0], count = 0;
        (function addConfetto() {
          if (onlyOnKonami && ++count > particles) {
            return timer = undefined;
          }
          var confetto = new Confetto(theme);
          confetti.push(confetto);
          container.appendChild(confetto.outer);
          timer = setTimeout(addConfetto, spread * random());
        })(0);
        var prev = undefined;
        requestAnimationFrame(function loop(timestamp) {
          var delta = prev ? timestamp - prev : 0;
          prev = timestamp;
          var height = $window.height();
          for (var i = confetti.length - 1; i >= 0; --i) {
            if (confetti[i].update(height, delta)) {
              container.removeChild(confetti[i].outer);
              confetti.splice(i, 1);
            }
          }
          if (timer || confetti.length) {
            return frame = requestAnimationFrame(loop);
          }
          document.body.removeChild(container);
          frame = undefined;
        });
      }
    }
    $window.keydown(function(event) {
      pointer = konami[pointer] === event.which ? pointer + 1 : +(event.which === konami[0]);
      if (pointer === konami.length) {
        pointer = 0;
        poof();
      }
    });
    if (!onlyOnKonami) {
      poof();
    }
  });
});
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://antonyadam.kanak.fr
 
PLUIE DE CONFETTIS
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» après la pluie...
» Le piano, l'eau et la pluie...
» La pluie
» rose sous la pluie
» La pluie sans parapluie

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
 :: DECO CARNAVAL-
Sauter vers: