Effetto Neve Snow Effect Script

Forum misto con frammenti di codice
Rispondi
Avatar utente
Galandas
Staff phpBB3World
Staff phpBB3World
Messaggi: 792
Iscritto il: 4 nov 2012, 9:18
Località: phpbb3world
Contatta:

Effetto Neve Snow Effect Script

Messaggio da Galandas » 22 dic 2013, 16:59

Titolo: Snow Effect Script
Autore: dynamicdrive
Descrizione: Effetto di neve Script molto più bello di quello semplice, si può alternare l'immagine per riprodurre una stagione.
Versione: 1.0.0
Piattaforma e versione: 3.0.x
Progresso: 100%

Inizio guida:

Script preso da dynamicdrive.

Partendo dal presupposto che stai usando prosilver...

Salva come snow.js e caricare in styles/prosilver/template/

Codice: Seleziona tutto

/******************************************
* Snow Effect Script- By Altan d.o.o. (http://www.altan.hr/snow/index.html)
* Visit Dynamic Drive DHTML code library (http://www.dynamicdrive.com/) for full source code
* Last updated Nov 9th, 05' by DD. This notice must stay intact for use
******************************************/
  
  //Configure below to change URL path to the snow image
  var snowsrc="http://nometuosito.it/styles/prosilver/theme/images/snow.gif"
  // Configure below to change number of snow to render
  var no = 10;
  // Configure whether snow should disappear after x seconds (0=never):
  var hidesnowtime = 0;
  // Configure how much snow should drop down before fading ("windowheight" or "pageheight")
  var snowdistance = "pageheight";

///////////Stop Config//////////////////////////////////

  var ie4up = (document.all) ? 1 : 0;
  var ns6up = (document.getElementById&&!document.all) ? 1 : 0;

	function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}

  var dx, xp, yp;    // coordinate and position variables
  var am, stx, sty;  // amplitude and step variables
  var i, doc_width = 800, doc_height = 600; 
  
  if (ns6up) {
    doc_width = self.innerWidth;
    doc_height = self.innerHeight;
  } else if (ie4up) {
    doc_width = iecompattest().clientWidth;
    doc_height = iecompattest().clientHeight;
  }

  dx = new Array();
  xp = new Array();
  yp = new Array();
  am = new Array();
  stx = new Array();
  sty = new Array();
  snowsrc=(snowsrc.indexOf("dynamicdrive.com")!=-1)? "snow.gif" : snowsrc
  for (i = 0; i < no; ++ i) {  
    dx[i] = 0;                        // set coordinate variables
    xp[i] = Math.random()*(doc_width-50);  // set position variables
    yp[i] = Math.random()*doc_height;
    am[i] = Math.random()*20;         // set amplitude variables
    stx[i] = 0.02 + Math.random()/10; // set step variables
    sty[i] = 0.7 + Math.random();     // set step variables
		if (ie4up||ns6up) {
      if (i == 0) {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><a href=\"http://dynamicdrive.com\"><img src='"+snowsrc+"' border=\"0\"><\/a><\/div>");
      } else {
        document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src='"+snowsrc+"' border=\"0\"><\/div>");
      }
    }
  }

  function snowIE_NS6() {  // IE and NS6 main animation function
    doc_width = ns6up?window.innerWidth-10 : iecompattest().clientWidth-10;
		doc_height=(window.innerHeight && snowdistance=="windowheight")? window.innerHeight : (ie4up && snowdistance=="windowheight")?  iecompattest().clientHeight : (ie4up && !window.opera && snowdistance=="pageheight")? iecompattest().scrollHeight : iecompattest().offsetHeight;
    for (i = 0; i < no; ++ i) {  // iterate for every dot
      yp[i] += sty[i];
      if (yp[i] > doc_height-50) {
        xp[i] = Math.random()*(doc_width-am[i]-30);
        yp[i] = 0;
        stx[i] = 0.02 + Math.random()/10;
        sty[i] = 0.7 + Math.random();
      }
      dx[i] += stx[i];
      document.getElementById("dot"+i).style.top=yp[i]+"px";
      document.getElementById("dot"+i).style.left=xp[i] + am[i]*Math.sin(dx[i])+"px";  
    }
    snowtimer=setTimeout("snowIE_NS6()", 10);
  }

	function hidesnow(){
		if (window.snowtimer) clearTimeout(snowtimer)
		for (i=0; i<no; i++) document.getElementById("dot"+i).style.visibility="hidden"
	}
		

if (ie4up||ns6up){
    snowIE_NS6();
		if (hidesnowtime>0)
		setTimeout("hidesnow()", hidesnowtime*1000)
		}
Apri styles/prosilver/template/overall_header.html, Cerca:

Codice: Seleziona tutto

<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/forum_fn.js"></script>
Aggiungi dopo:

Codice: Seleziona tutto

<script type="text/javascript" src="{T_TEMPLATE_PATH}/snow.js"></script>
Immagine || Immagine ||Immagine || Immagine
Salva una di queste immagini qui sopra,assecondo dell'effetto che si vuole ottenere con il nome snow.gif e caricala in styles/prosilver/theme/images

In alternativa puoi caricare questo, che cambierà l'effetto della neve.

Codice: Seleziona tutto

var snowmax = 30;
var snowcolor = new Array("#aaaacc", "#ddddFF", "#ccccDD");
var snowtype = new Array("Arial Black", "Arial Narrow", "Times", "Comic Sans MS");
var snowletter = "*";
var sinkspeed = 0.9;
var snowmaxsize = 30;
var snowminsize = 10;
var snowingzone = 1;
var snow = new Array();
var marginbottom;
var marginright;
var ScrollTop;
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(a) 
{
    rand = Math.floor(a * Math.random());
    return rand
}

function iecompattest()
{
	return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body 
}

function InitHeight() {
	if (ie5 || opera) {
		marginbottom = iecompattest().clientHeight + 5; //clientHeight;
		marginright = iecompattest().scrollWidth + 5; //clientWidth
	}
	else {
		if (ns6) {
			marginbottom = self.innerHeight;
			marginright = self.innerWidth
		}
	}
	ScrollTop = document.body.scrollTop;
	if (ScrollTop == 0) {
		if (window.pageYOffset)
			ScrollTop = window.pageYOffset;
		else
			ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
	}
	marginbottom += ScrollTop;
}

function initsnow() 
{
	InitHeight()
  var a = 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(a) + 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() 
{
	InitHeight();
	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 = ScrollTop 
		}
	}
	var a = setTimeout("movesnow()", 60) 
}
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, ') };


Ultimo bump di Galandas effettuato il 22 dic 2013, 16:59.
Menu Forum ha scritto:

Rispondi

Torna a “Snippets”

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti