Pagina 1 di 1

Effetto neve, un animazione molto carina, si puo'?

Inviato: 14/12/2004, 19:09
da Megadream
Andando siu questo sito www.ufologia.net, si nota un animazione natalizia molto carina. Fiocchi di neve che scendono a ripetizione.

Sapete per caso se e' possibile trovare questo effetto e utilizzarlo sulla 2.2?

Thnks a lot
bye!

Inviato: 14/12/2004, 19:16
da xpress
certo che si puo anche se questa non è un granchè
è + carina una che uso io

appena posso ti posto qui il codice magari è utile a qualcun altro

Inviato: 14/12/2004, 19:23
da xpress
questo dentro l'header dentro </head>
<SCRIPT LANGUAGE="JavaScript" SRC="snow.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
function snow()
{
Falling(10,"<img src=\"fiocco.gif\" width=\"25\" height=\"25\">", 60);
Falling(30,"<FONT SIZE='3' FACE='Verdana' COLOR='#FFFFFF'>*</FONT>", 60);
}
</SCRIPT>
sul body
onLoad="snow()"
per far partile la funzione

ed infine il file snow.js
var ns4 = (navigator.appName.indexOf("Netscape") != -1 && !document.getElementById);

if(!window.JSFX)
JSFX=new Object();

JSFX.layerNo=0;
/**********************************************************************************/
JSFX.createLayer = function(htmlStr, parent)
{
var elem = null;

if(document.layers)
{
var xName="xLayer" + JSFX.layerNo++;
if(parent == null)
elem=new Layer(2000);
else
elem=new Layer(2000, parent.elem);

elem.document.open();
elem.document.write(htmlStr);
elem.document.close();
elem.moveTo(0,0);
elem.innerHTML = htmlStr;
}
else
if(document.all)
{
if(parent == null)
parent=document.body;
else
parent=parent.elem;

var xName = "xLayer" + JSFX.layerNo++;
var txt = '<DIV ID="' + xName + '"'
+ ' STYLE="position:absolute;left:0;top:0;visibility:hidden">'
+ htmlStr
+ '</DIV>';

parent.insertAdjacentHTML("BeforeEnd",txt);

elem = document.all[xName];
}
else
if (document.getElementById)
{
if(parent == null)
parent=document.body;
else
parent=parent.elem;

var xName="xLayer" + JSFX.layerNo++;
var txt = ""
+ "position:absolute;left:0px;top:0px;visibility:hidden";

var newRange = document.createRange();

elem = document.createElement("DIV");
elem.setAttribute("style",txt);
elem.setAttribute("id", xName);

parent.appendChild(elem);

newRange.setStartBefore(elem);
strFrag = newRange.createContextualFragment(htmlStr);
elem.appendChild(strFrag);
}

return elem;
}
/**********************************************************************************/
JSFX.Layer = function(newLayer, parent)
{
if(!newLayer)
return;

if(typeof newLayer == "string")
this.elem = JSFX.createLayer(newLayer, parent);
else
this.elem=newLayer;

if(document.layers)
{
this.images = this.elem.document.images;
this.parent = parent;
this.style = this.elem;
if(parent != null)
this.style.visibility = "inherit";
}
else
{
this.images = document.images;
this.parent = parent;
this.style = this.elem.style;
}
window[this.elem.id]=this; //save a reference to this
}
/**********************************************************************************/
JSFX.findLayer = function(theDiv, d)
{
if(document.layers)
{
var i;
if(d==null) d = document;
var theLayer = d.layers[theDiv];
if(theLayer != null)
return(theLayer);
else
for(i=0 ; i<d.layers.length ; i++)
{
theLayer = JSFX.findLayer(theDiv, d.layers.document);
if(theLayer != null)
return(theLayer);
}
return("Undefined....");
}
else
if(document.all)
return(document.all[theDiv]);
else
if(document.getElementById)
return(document.getElementById(theDiv));
else
return("Undefined.....");
}

/**********************************************************************************/
/*** moveTo (x,y) ***/
JSFX.Layer.prototype.moveTo = function(x,y)
{
this.style.left = x+"px";
this.style.top = y+"px";
}
if(ns4)
JSFX.Layer.prototype.moveTo = function(x,y) { this.elem.moveTo(x,y); }
/**********************************************************************************/
/*** show()/hide() Visibility ***/
JSFX.Layer.prototype.show = function() { this.style.visibility = "visible"; }
JSFX.Layer.prototype.hide = function() { this.style.visibility = "hidden"; }
JSFX.Layer.prototype.isVisible = function() { return this.style.visibility == "visible"; }
if(ns4)
{
JSFX.Layer.prototype.show = function() { this.style.visibility = "show"; }
JSFX.Layer.prototype.hide = function() { this.style.visibility = "hide"; }
JSFX.Layer.prototype.isVisible = function() { return this.style.visibility == "show"; }
}
/**********************************************************************************/
/*** zIndex ***/
JSFX.Layer.prototype.setzIndex = function(z) { this.style.zIndex = z; }
JSFX.Layer.prototype.getzIndex = function() { return this.style.zIndex; }
/**********************************************************************************/
/*** ForeGround (text) Color ***/
JSFX.Layer.prototype.setColor = function(c){this.style.color=c;}
if(ns4)
JSFX.Layer.prototype.setColor = function(c)
{
this.elem.document.write("<FONT COLOR='"+c+"'>"+this.elem.innerHTML+"</FONT>");
this.elem.document.close();
}
/**********************************************************************************/
/*** BackGround Color ***/
JSFX.Layer.prototype.setBgColor = function(color) { this.style.backgroundColor = color==null?'transparent':color; }
if(ns4)
JSFX.Layer.prototype.setBgColor = function(color) { this.elem.bgColor = color; }
/**********************************************************************************/
/*** BackGround Image ***/
JSFX.Layer.prototype.setBgImage = function(image) { this.style.backgroundImage = "url("+image+")"; }
if(ns4)
JSFX.Layer.prototype.setBgImage = function(image) { this.style.background.src = image; }
/**********************************************************************************/
/*** set Content***/
JSFX.Layer.prototype.setContent = function(xHtml) { this.elem.innerHTML=xHtml; }
if(ns4)
JSFX.Layer.prototype.setContent = function(xHtml)
{
this.elem.document.write(xHtml);
this.elem.document.close();
this.elem.innerHTML = xHtml;
}

/**********************************************************************************/
/*** Clipping ***/
JSFX.Layer.prototype.clip = function(x1,y1, x2,y2){ this.style.clip="rect("+y1+" "+x2+" "+y2+" "+x1+")"; }
if(ns4)
JSFX.Layer.prototype.clip = function(x1,y1, x2,y2)
{
this.style.clip.top =y1;
this.style.clip.left =x1;
this.style.clip.bottom =y2;
this.style.clip.right =x2;
}
/**********************************************************************************/
/*** Resize ***/
JSFX.Layer.prototype.resizeTo = function(w,h)
{
this.style.width =w + "px";
this.style.height =h + "px";
}
if(ns4)
JSFX.Layer.prototype.resizeTo = function(w,h)
{
this.style.clip.width =w;
this.style.clip.height =h;
}
/**********************************************************************************/
/*** getX/Y ***/
JSFX.Layer.prototype.getX = function() { return parseInt(this.style.left); }
JSFX.Layer.prototype.getY = function() { return parseInt(this.style.top); }
if(ns4)
{
JSFX.Layer.prototype.getX = function() { return this.style.left; }
JSFX.Layer.prototype.getY = function() { return this.style.top; }
}
/**********************************************************************************/
/*** getWidth/Height ***/
JSFX.Layer.prototype.getWidth = function() { return this.elem.offsetWidth; }
JSFX.Layer.prototype.getHeight = function() { return this.elem.offsetHeight; }
if(!document.getElementById)
JSFX.Layer.prototype.getWidth = function()
{
//Extra processing here for clip
return this.elem.scrollWidth;
}

if(ns4)
{
JSFX.Layer.prototype.getWidth = function() { return this.style.clip.right; }
JSFX.Layer.prototype.getHeight = function() { return this.style.clip.bottom; }
}
/**********************************************************************************/
/*** Opacity ***/
if(ns4)
{
JSFX.Layer.prototype.setOpacity = function(pc) {return 0;}
}
else if(document.all)
{
JSFX.Layer.prototype.setOpacity = function(pc)
{
if(this.style.filter=="")
this.style.filter="alpha(opacity=80);";
this.elem.filters.alpha.opacity=pc;
}
}
else
{
/*** Assume NS6 ***/
JSFX.Layer.prototype.setOpacity = function(pc){ this.style.MozOpacity=pc+'%' }
}
/**************************************************************************/
/*** Event Handling - Start ***/
/*** NS4 ***/
if(ns4)
{
JSFX.eventmasks = {
onabort:Event.ABORT, onblur:Event.BLUR, onchange:Event.CHANGE,
onclick:Event.CLICK, ondblclick:Event.DBLCLICK,
ondragdrop:Event.DRAGDROP, onerror:Event.ERROR,
onfocus:Event.FOCUS, onkeydown:Event.KEYDOWN,
onkeypress:Event.KEYPRESS, onkeyup:Event.KEYUP, onload:Event.LOAD,
onmousedown:Event.MOUSEDOWN, onmousemove:Event.MOUSEMOVE,
onmouseout:Event.MOUSEOUT, onmouseover:Event.MOUSEOVER,
onmouseup:Event.MOUSEUP, onmove:Event.MOVE, onreset:Event.RESET,
onresize:Event.RESIZE, onselect:Event.SELECT, onsubmit:Event.SUBMIT,
onunload:Event.UNLOAD
};
JSFX.Layer.prototype.addEventHandler = function(eventname, handler)
{
this.elem.captureEvents(JSFX.eventmasks[eventname]);
var xl = this;
this.elem[eventname] = function(event) {
event.clientX = event.pageX;
event.clientY = event.pageY;
event.button = event.which;
event.keyCode = event.which;
event.altKey =((event.modifiers & Event.ALT_MASK) != 0);
event.ctrlKey =((event.modifiers & Event.CONTROL_MASK) != 0);
event.shiftKey =((event.modifiers & Event.SHIFT_MASK) != 0);
return handler(xl, event);
}
}
JSFX.Layer.prototype.removeEventHandler = function(eventName)
{
this.elem.releaseEvents(JSFX.eventmasks[eventName]);
delete this.elem[eventName];
}
}
/**************************************************************************/
/** IE 4/5+***/
else
if(document.all)
{
JSFX.Layer.prototype.addEventHandler = function(eventName, handler)
{
var xl = this;
this.elem[eventName] = function()
{
var e = window.event;
e.cancelBubble = true;
if(document.getElementById)
{
e.layerX = e.offsetX;
e.layerY = e.offsetY;
}
else
{
/*** Work around for IE 4 : clone window.event ***/
ev = new Object();
for(i in e)
ev = e;
ev.layerX = e.offsetX;
ev.layerY = e.offsetY;
e = ev;
}

return handler(xl, e);
}
}
JSFX.Layer.prototype.removeEventHandler = function(eventName)
{
this.elem[eventName] = null;
}
}
/**************************************************************************/
/*** Assume NS6 ***/
else
{
JSFX.Layer.prototype.addEventHandler = function(eventName, handler)
{
var xl = this;
this.elem[eventName] = function(e)
{
e.cancelBubble = true;
return handler(xl, e);
}
}
JSFX.Layer.prototype.removeEventHandler = function(eventName)
{
this.elem[eventName] = null;
}
}
/*** Event Handling - End ***/
/**************************************************************************/
JSFX.Layer.prototype.setTimeout = function(f, t)
{
setTimeout("window."+this.elem.id+"."+f, t);
}
if(!window.JSFX)
JSFX=new Object();

if(!JSFX.Browser)
JSFX.Browser = new Object();

if(navigator.appName.indexOf("Netscape") != -1)
{
JSFX.Browser.getCanvasWidth = function() {return innerWidth;}
JSFX.Browser.getCanvasHeight = function() {return innerHeight;}
JSFX.Browser.getWindowWidth = function() {return outerWidth;}
JSFX.Browser.getWindowHeight = function() {return outerHeight;}
JSFX.Browser.getScreenWidth = function() {return screen.width;}
JSFX.Browser.getScreenHeight = function() {return screen.height;}
JSFX.Browser.getMinX = function() {return(pageXOffset);}
JSFX.Browser.getMinY = function() {return(pageYOffset);}
JSFX.Browser.getMaxX = function() {return(pageXOffset+innerWidth);}
JSFX.Browser.getMaxY = function() {return(pageYOffset+innerHeight);}

}
else if(document.all) {
JSFX.Browser.getCanvasWidth = function() {return document.body.clientWidth;}
JSFX.Browser.getCanvasHeight = function() {return document.body.clientHeight;}
JSFX.Browser.getWindowWidth = function() {return document.body.clientWidth;}
JSFX.Browser.getWindowHeight = function() {return document.body.clientHeight;}
JSFX.Browser.getScreenWidth = function() {return screen.width;}
JSFX.Browser.getScreenHeight = function() {return screen.height;}
JSFX.Browser.getMinX = function() {return(document.body.scrollLeft);}
JSFX.Browser.getMinY = function() {return(document.body.scrollTop);}
JSFX.Browser.getMaxX = function() {
return(document.body.scrollLeft
+document.body.clientWidth);
}
JSFX.Browser.getMaxY = function() {
return(document.body.scrollTop
+document.body.clientHeight);
}
}
JSFX.FallingSprite = function(theHtml)
{
//Call the superclass constructor
this.superC = JSFX.Layer;
this.superC(theHtml);

this.x = Math.random() * (JSFX.Browser.getMaxX()-40);
this.y = -40;
this.dx = Math.random() * 4 - 2;
this.dy = Math.random() * 6 + 2;
this.ang = 0;
this.angStep = .2;
this.amp = 10;
this.state = "FALL";

this.moveTo(this.x,this.y);
this.show();
}
JSFX.FallingSprite.prototype = new JSFX.Layer;

JSFX.FallingSprite.prototype.animate = function()
{
if(this.state == "OFF")
return;

this.x += this.dx;
this.y += this.dy;
this.ang += this.angStep;

this.moveTo(this.x + this.amp*Math.sin(this.ang), this.y);

if( (this.x > JSFX.Browser.getMaxX()-20)
|| (this.x < JSFX.Browser.getMinX()-0)
|| (this.y > JSFX.Browser.getMaxY()-40) )
{
if(this.state == "STOPPING")
{
this.moveTo(-100,-100);
this.hide();
this.state = "OFF";
}
else
{
this.x = Math.random() * (JSFX.Browser.getMaxX()-40);
this.y = JSFX.Browser.getMinY()-40;
this.dx = Math.random() * 4 - 2;
this.dy = Math.random() * 6 + 2;
this.ang = 0;
}
}
}
/*** Class FallingObj extends Object ***/
JSFX.FallingObj = function(numSprites, theImage, stopTime)
{
this.id = "JSFX_FallingObj_"+JSFX.FallingObj.count++;
this.sprites = new Array();
for(i=0 ; i<numSprites; i++)
{
this.sprites=new JSFX.FallingSprite(theImage);
}
window[this.id]=this;
this.animate();

if(stopTime)
setTimeout("window."+this.id+".stop()", stopTime*1000);

}
JSFX.FallingObj.count = 0;

JSFX.FallingObj.prototype.stop = function()
{
for(i=0 ; i<this.sprites.length ; i++)
this.sprites.state = "STOPPING";
}

JSFX.FallingObj.prototype.animate = function()
{
setTimeout("window."+this.id+".animate()", 40);

for(i=0 ; i<this.sprites.length ; i++)
this.sprites.animate();

}
/*** END Class FallingObj ***/

/*
* Class Falling extends Object (Static method for creating "Falling" objects
*/
Falling = function(n, theImage, stopTime)
{
myFalling = new JSFX.FallingObj(n, theImage, stopTime);

return myFalling;
}


ciao ciao

ah dimenticavo è ovvio che devi caricare nella directory anche il file
fiocco.gif
ne basta uno ed ottieni l'effetto
scaricalo dal sito che hai mensionato acchiappandolo con tasto destro mentre scende........buon acchiappata
ti consiglio uno bianco

Inviato: 15/12/2004, 11:55
da Megadream
Ehm ti ringrazio della info, ma non riesco a capire in che file devo mettere queste stringhe

per caso in index.php?

Inoltre quel file js devo ricrearlo io rinominando un file di testo o cosa?

thnks!

Inviato: 15/12/2004, 14:23
da xpress
Megadream ha scritto:Ehm ti ringrazio della info, ma non riesco a capire in che file devo mettere queste stringhe

per caso in index.php?

Inoltre quel file js devo ricrearlo io rinominando un file di testo o cosa?

thnks!

si esatto onload lo devi mettere nel body dell'index o sua altri file tipo l'index che so product_info

per il codice per il js si devi copiare il codice e metterlo su un file di testo e nominarlo con nome ed estensione .js

ciao

Inviato: 22/12/2004, 23:13
da phantom
xpress ha scritto: si esatto onload lo devi mettere nel body dell'index o sua altri file tipo l'index che so product_info
per il codice per il js si devi copiare il codice e metterlo su un file di testo e nominarlo con nome ed estensione .js
Anch'io ero interessato, provato e non funziona!!!
Inserito .js, modificato la index, copiato un fiocco.gif, ma niente da fare non scende sta benedetta neve...
Ciauz

Inviato: 06/01/2005, 17:31
da loris_ripa
un po' in ritardo...=)...
io ho provato questo script...funziona...l'ho inserito nell'header...
Ecco il link...

http://weblink.altervista.org/scripting ... caratt.php

magari sarà più utile l'anno prossimo!!!!...=)...
Ciao
LR