Visualizzazione risultati 1 fino 4 di 4

Discussione: Neve in movimento sul sito

  1. #1
    Guest

    Predefinito Neve in movimento sul sito

    Ciao, come è possibile far nevicare sul proprio sito? Ovvero fiocchi di neve in movimento dall'alto verso il basso, uno sfondo animato potrei usare gif maker ma ci metterei troppo tempo

  2. #2
    luca1962 non è connesso Utente attivo
    Data registrazione
    24-05-2008
    Messaggi
    467

    Predefinito

    Io ho trovato questo:

    <script src="http://www.isoladeifamosi-2009.it/upload/neveblogscuri.js" type="text/javascript"/></script>
    Luca.

  3. #3
    Guest

    Predefinito

    @luca1962 Grazie mi è stato abbastanza utile però preferirei di granlunga che questo effetto venisse applicato all'immagine che scelgo io

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,257

    Predefinito

    Non è difficile modificare quello script e metterci delle immagini qualsiasi:

    Codice:
    //Snow - http://www.btinternet.com/~kurt.grigg/javascript
    
    if  ((document.getElementById) && 
    window.addEventListener || window.attachEvent){
    
    (function(){
    
    //Configure here.
    
    var num = 30;   //Number of flakes
    var timer = 30; //setTimeout speed. Varies on different comps
    var enableinNS6 = 1 //Enable script in NS6/Mozilla? Snow animation could be slow in those browsers. (1=yes, 0=no).
    var immagine = 'fiocco.gif';
    var dimensione_minima = 5;
    var dimensione_massima = 20;
    
    //End.
    
    var y = [];
    var x = [];
    var fall = [];
    var theFlakes = [];
    var sfs = [];
    var step = [];
    var currStep = [];
    var h,w,r;
    var d = document;
    var pix = "px";
    var domWw = (typeof window.innerWidth == "number");
    var domSy = (typeof window.pageYOffset == "number");
    var idx = d.getElementsByTagName('div').length;
    
    if (d.documentElement.style && 
    typeof d.documentElement.style.MozOpacity == "string")
    num = 12;
    
    for (i = 0; i < num; i++){
    sfs[i] = Math.round(dimensione_minima + Math.random() * (dimensione_massima-dimensione_minima));
    
    document.write('<div id="flake'+(idx+i)+'" style="position:absolute;top:0px;left:0px;width:'
    +sfs[i]+'px;height:'+sfs[i]+'px;font-size:'+sfs[i]+'px"><img style="overflow:hidden;width:'+sfs[i]+'px;height:'+sfs[i]+'px" src="'+immagine+'"><\/div>');
    
    currStep[i] = 0;
    fall[i] = (sfs[i] == 1)?
    Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2);
    step[i] = (sfs[i] == 1)?
    0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ;
    }
    
    
    if (domWw) r = window;
    else{ 
      if (d.documentElement && 
      typeof d.documentElement.clientWidth == "number" && 
      d.documentElement.clientWidth != 0)
      r = d.documentElement;
     else{ 
      if (d.body && 
      typeof d.body.clientWidth == "number")
      r = d.body;
     }
    }
    
    
    function winsize(){
    var oh,sy,ow,sx,rh,rw;
    if (domWw){
      if (d.documentElement && d.defaultView && 
      typeof d.defaultView.scrollMaxY == "number"){
      oh = d.documentElement.offsetHeight;
      sy = d.defaultView.scrollMaxY;
      ow = d.documentElement.offsetWidth;
      sx = d.defaultView.scrollMaxX;
      rh = oh-sy;
      rw = ow-sx;
     }
     else{
      rh = r.innerHeight;
      rw = r.innerWidth;
     }
    h = rh - 2;  
    w = rw - 2; 
    }
    else{
    h = r.clientHeight - 2; 
    w = r.clientWidth - 2; 
    }
    }
    
    
    function scrl(yx){
    var y,x;
    if (domSy){
     y = r.pageYOffset;
     x = r.pageXOffset;
     }
    else{
     y = r.scrollTop;
     x = r.scrollLeft;
     }
    return (yx == 0)?y:x;
    }
    
    
    function snow(){
    var dy,dx;
    
    for (i = 0; i < num; i++){
     dy = fall[i];
     dx = fall[i] * Math.cos(currStep[i]);
    
     y[i]+=dy;
     x[i]+=dx; 
    
     if (x[i] >= w || y[i] >= h){
      y[i] = -10;
      x[i] = Math.round(Math.random() * w);
      fall[i] = (sfs[i] == 1)?
      Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2);
      step[i] = (sfs[i] == 1)?
      0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ;
     }
     
     theFlakes[i].top = y[i] + scrl(0) + pix;
     theFlakes[i].left = x[i] + scrl(1) + pix;
    
     currStep[i]+=step[i];
    }
    setTimeout(snow,timer);
    }
    
    
    function init(){
    winsize();
    for (i = 0; i < num; i++){
     theFlakes[i] = document.getElementById("flake"+(idx+i)).style;
     y[i] = Math.round(Math.random()*h);
     x[i] = Math.round(Math.random()*w);
    }
    snow();
    }
    
    
    if (window.addEventListener){
     window.addEventListener("resize",winsize,false);
     window.addEventListener("load",init,false);
    }  
    else if (window.attachEvent){
     window.attachEvent("onresize",winsize);
     window.attachEvent("onload",init);
    } 
    
    })();
    }//End.
    Su firefox non riconosce bene l'altezza della finestra. Bisognerebbe usare delle proprietà più aggiornate... Ma non ho abbastanza tempo per farlo.

    Ciao!
    Ultima modifica di alemoppo : 11-12-2013 alle ore 23.53.02

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •