Jump to content

PHP FUSION snih


Daves

Recommended Posts

Zdravím nězná někdo nějaký script na padajicí shníh na webu pro PHP fushion skoušel jsem na google hledat ale nic pořádného jsem nenašel za tipy díky.

Link to comment
Share on other sites

 

<?php

if (!defined("IN_FUSION")) { header("Location: ../../index.php"); exit; }

?>

 

var snowStorm = null;

 

function SnowStorm() {

var s = this;

var storm = this;

this.timers = [];

this.flakes = [];

this.disabled = false;

this.terrain = [];

 

var usePNG = true;

var imagePath = '<?php echo"".INFUSIONS."";?>snow_panel/image/snow/'; // relative path to snow images

var flakeTypes = 6;

var flakesMax = 128;

var flakesMaxActive = 64;

var vMax = 2.5;

var flakeWidth = 5;

var flakeHeight = 5;

var flakeBottom = 197; // Integer for fixed bottom, 0 or null for "full-screen" snow effect

var snowCollect = true;

var showStatus = true;

 

var isIE = (navigator.appName.toLowerCase().indexOf('internet explorer')+1);

var isWin9X = (navigator.appVersion.toLowerCase().indexOf('windows 98')+1);

var isOpera = (navigator.userAgent.toLowerCase().indexOf('opera ')+1 || navigator.userAgent.toLowerCase().indexOf('opera/')+1);

if (isOpera) isIE = false; // Opera (which is sneaky, pretending to be IE by default)

var screenX = null;

var screenY = null;

var scrollY = null;

var vRndX = null;

var vRndY = null;

 

function rnd(n,min) {

if (isNaN(min)) min = 0;

return (Math.random()*n)+min;

}

 

this.randomizeWind = function() {

vRndX = plusMinus(rnd(vMax,0.2));

vRndY = rnd(vMax,0.2);

if (this.flakes) {

for (var i=0; i

if (this.flakes.active) this.flakes.setVelocities();

}

}

}

 

function plusMinus(n) {

return (parseInt(rnd(2))==1?n*-1:n);

}

 

this.resizeHandler = function() {

if (window.innerWidth || window.innerHeight) {

screenX = window.innerWidth-(!isIE?24:2);

screenY = (flakeBottom?flakeBottom:window.innerHeight);

} else {

screenX = (document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth)-(!isIE?8:0);

screenY = flakeBottom?flakeBottom:(document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight);

}

s.scrollHandler();

}

 

this.scrollHandler = function() {

// "attach" snowflakes to bottom of window if no absolute bottom value was given

scrollY = (flakeBottom?0:parseInt(window.scrollY||document.documentElement.scrollTop||document.body.scrollTop));

if (isNaN(scrollY)) scrollY = 0; // Netscape 6 scroll fix

if (!flakeBottom && s.flakes) {

for (var i=0; i

if (s.flakes.active == 0) s.flakes.stick();

}

}

}

 

this.freeze = function() {

// pause animation

if (!s.disabled) {

s.disabled = 1;

} else {

return false;

}

if (!isWin9X) {

clearInterval(s.timers);

} else {

for (var i=0; i

clearInterval(s.timers);

}

}

}

 

this.resume = function() {

if (s.disabled) {

s.disabled = 0;

} else {

return false;

}

s.timerInit();

}

 

this.stop = function() {

this.freeze();

for (var i=0; i

this.flakes.o.style.display = 'none';

}

removeEventHandler(window,'scroll',this.scrollHandler,false);

removeEventHandler(window,'resize',this.resizeHandler,false);

}

 

this.SnowFlake = function(parent,type,x,y) {

var s = this;

var storm = parent;

this.type = type;

this.x = x||parseInt(rnd(screenX-12));

this.y = (!isNaN(y)?y:-12);

this.vX = null;

this.vY = null;

this.vAmpTypes = [2.0,1.0,1.25,1.0,1.5,1.75]; // "amplification" for vX/vY (based on flake size/type)

this.vAmp = this.vAmpTypes[this.type];

 

this.active = 1;

this.o = document.createElement('img');

this.o.style.position = 'absolute';

this.o.style.width = flakeWidth+'px';

this.o.style.height = flakeHeight+'px';

this.o.style.fontSize = '1px'; // so IE keeps proper size

this.o.style.zIndex = 2;

this.o.src = imagePath+this.type+(pngHandler.supported && usePNG?'.png':'.gif');

document.body.appendChild(this.o);

if (pngHandler.supported && usePNG) pngHandler.transform(this.o);

 

this.refresh = function() {

this.o.style.left = this.x+'px';

this.o.style.top = this.y+'px';

}

 

this.stick = function() {

s.o.style.top = (screenY+scrollY-flakeHeight-storm.terrain[Math.floor(this.x)])+'px';

// called after relative left has been called

}

 

this.vCheck = function() {

if (this.vX>=0 && this.vX<0.2) {

this.vX = 0.2;

} else if (this.vX<0 && this.vX>-0.2) {

this.vX = -0.2;

}

if (this.vY>=0 && this.vY<0.2) {

this.vY = 0.2;

}

}

 

this.move = function() {

this.x += this.vX;

this.y += (this.vY*this.vAmp);

this.refresh();

 

if (this.vX && screenX-this.x

this.x = 0;

} else if (this.vX<0 && this.x<0-flakeWidth) {

this.x = screenX-flakeWidth; // flakeWidth;

}

var yDiff = screenY+scrollY-this.y-storm.terrain[Math.floor(this.x)];

if (yDiff

this.active = 0;

if (snowCollect) {

var height = [0.75,1.5,0.75];

for (var i=0; i<2; i++) {

storm.terrain[Math.floor(this.x)+i+2] += height;

}

}

this.o.style.left = ((this.x-(!isIE?flakeWidth:0))/screenX*100)+'%'; // set "relative" left (change with resize)

if (!flakeBottom) {

this.stick();

}

}

}

 

this.animate = function() {

// main animation loop

// move, check status, die etc.

this.move();

}

 

this.setVelocities = function() {

this.vX = vRndX+rnd(vMax*0.12,0.1);

this.vY = vRndY+rnd(vMax*0.12,0.1);

}

 

this.recycle = function() {

this.setVelocities();

this.vCheck();

this.x = parseInt(rnd(screenX-flakeWidth-1));

this.y = parseInt(rnd(640)*-1)-flakeHeight;

this.active = 1;

}

 

this.recycle(); // set up x/y coords etc.

this.refresh();

 

}

 

this.snow = function() {

var active = 0;

var used = 0;

var waiting = 0;

for (var i=this.flakes.length-1; i>0; i--) {

if (this.flakes.active == 1) {

this.flakes.animate();

active++;

} else if (this.flakes.active == 0) {

used++;

} else {

waiting++;

}

}

if (snowCollect && !waiting) { // !active && !waiting

// create another batch of snow

this.createSnow(flakesMaxActive,true);

}

if (active

with (this.flakes[parseInt(rnd(this.flakes.length))]) {

if (!snowCollect && active == 0) {

recycle();

} else if (active == -1) {

active = 1;

}

}

}

}

 

this.createSnow = function(limit,allowInactive) {

if (showStatus) window.status = 'Creating snow...';

for (var i=0; i

this.flakes[this.flakes.length] = new this.SnowFlake(this,parseInt(rnd(flakeTypes)));

if (allowInactive || i>flakesMaxActive) this.flakes[this.flakes.length-1].active = -1;

}

if (showStatus) window.status = '';

}

 

this.timerInit = function() {

this.timers = (!isWin9X?setInterval("snowStorm.snow()",20):[setInterval("snowStorm.snow()",75),setInterval("snowStorm.snow()",25)]);

}

 

this.init = function() {

for (var i=0; i<8192; i++) {

this.terrain = 0;

}

this.randomizeWind();

this.createSnow(snowCollect?flakesMaxActive:flakesMaxActive*2); // create initial batch

addEventHandler(window,'resize',this.resizeHandler,false);

addEventHandler(window,'scroll',this.scrollHandler,false);

// addEventHandler(window,'scroll',this.resume,false); // scroll does not cause window focus. (odd)

// addEventHandler(window,'blur',this.freeze,false);

// addEventHandler(window,'focus',this.resume,false);

this.timerInit();

}

 

this.resizeHandler(); // get screen coordinates

 

if (screenX && screenY && !this.disabled) {

this.init();

}

 

}

 

function snowStormInit() {

setTimeout("snowStorm = new SnowStorm()",500);

}

 

// Generic addEventHandler() wrapper

// ---------------------------------

// A generic interface for adding DOM event handlers

// Version 1.2.20040404

//

// Code by Scott Schiller | schillmania.com

//

// Revision history:

// ---------------------------------

// v1.1.20031218: initial deploy

// v1.2.20040404: added post-load event check

 

var addEventHandler = null;

var removeEventHandler = null;

 

function postLoadEvent(eventType) {

// test for adding an event to the body (which has already loaded) - if so, fire immediately

return ((eventType.toLowerCase().indexOf('load')>=0) && document.body);

}

 

function addEventHandlerDOM(o,eventType,eventHandler,eventBubble) {

if (!postLoadEvent(eventType)) {

o.addEventListener(eventType,eventHandler,eventBubble);

} else {

eventHandler();

}

}

 

function removeEventHandlerDOM(o,eventType,eventHandler,eventBubble) {

o.removeEventListener(eventType,eventHandler,eventBubble);

}

 

function addEventHandlerIE(o,eventType,eventHandler) { // IE workaround

if (!eventType.indexOf('on')+1) eventType = 'on'+eventType;

if (!postLoadEvent(eventType)) {

o.attachEvent(eventType,eventHandler); // Note addition of "on" to event type

} else {

eventHandler();

}

}

 

function removeEventHandlerIE(o,eventType,eventHandler) {

if (!eventType.indexOf('on')+1) eventType = 'on'+eventType;

o.detachEvent(eventType,eventHandler);

}

 

function addEventHandlerOpera(o,eventType,eventHandler,eventBubble) {

if (!postLoadEvent(eventType)) {

(o==window?document:o).addEventListener(eventType,eventHandler,eventBubble);

} else {

eventHandler();

}

}

 

function removeEventHandlerOpera(o,eventType,eventHandler,eventBubble) {

(o==window?document:o).removeEventListener(eventType,eventHandler,eventBubble);

}

 

if (navigator.userAgent.toLowerCase().indexOf('opera ')+1 || navigator.userAgent.toLowerCase().indexOf('opera/')+1) {

// opera is dumb at times.

addEventHandler = addEventHandlerOpera;

removeEventHandler = removeEventHandlerOpera;

} else if (document.addEventListener) { // DOM event handler method

addEventHandler = addEventHandlerDOM;

removeEventHandler = removeEventHandlerDOM;

} else if (document.attachEvent) { // IE event handler method

addEventHandler = addEventHandlerIE;

removeEventHandler = removeEventHandlerIE;

} else { // Neither "DOM level 2" (?) methods supported

addEventHandler = function(o,eventType,eventHandler,eventBubble) {

o['on'+eventType] = eventHandler;

// Multiple events could be added here via array etc.

}

removeEventHandler = function(o,eventType,eventHandler,eventBubble) {}

}

 

// Safari 1.0 does not support window.scroll events - apparently netscape 6.0/6.2 and mozilla 1.4 also.

// Refer to events support table at http://www.quirksmode.org/js/events_compinfo.html

 

// -- end addEventHandler definition --

 

/*

PNGHandler: Object-Oriented Javascript-based PNG wrapper

--------------------------------------------------------

Version 1.2.20040803

Code by Scott Schiller - http://www.schillmania.com

--------------------------------------------------------

Description:

Provides gracefully-degrading PNG functionality where

PNG is supported natively or via filters (Damn you, IE!)

Should work with PNGs as images and DIV background images.

--------------------------------------------------------

Revision history

--------------------------------------------------------

1.2

- Added refresh() for changing PNG images under IE

- Class extension: "scale" causes PNG to scale under IE

--------------------------------------------------------

Known bugs

--------------------------------------------------------

- ie:mac doesn't support PNG background images.

- Safari doesn't support currentStyle() - can't parse BG

via CSS (ie. for a DIV with a PNG background by class)

 

*/

 

function PNGHandler() {

var self = this;

 

this.na = navigator.appName.toLowerCase();

this.nv = navigator.appVersion.toLowerCase();

this.isIE = this.na.indexOf('internet explorer')+1?1:0;

this.isWin = this.nv.indexOf('windows')+1?1:0;

this.isIEMac = (this.isIE&&!this.isWin);

this.isIEWin = (this.isIE&&this.isWin);

this.ver = this.isIE?parseFloat(this.nv.split('msie ')[1]):parseFloat(this.nv);

this.isMac = this.nv.indexOf('mac')+1?1:0;

this.isOpera = (navigator.userAgent.toLowerCase().indexOf('opera ')+1 || navigator.userAgent.toLowerCase().indexOf('opera/')+1);

if (this.isOpera) this.isIE = false; // Opera filter catch (which is sneaky, pretending to be IE by default)

this.filterID = 'DXImageTransform.Microsoft.AlphaImageLoader';

this.supported = false;

this.transform = self.doNothing;

 

this.filterMethod = function(o) {

// IE 5.5+ proprietary filter garbage (boo!)

// Create new element based on old one. Doesn't seem to render properly otherwise (due to filter?)

// use DOM "currentStyle" method, so rules inherited via CSS are picked up.

if (o.nodeName != 'IMG') {

var b = o.currentStyle.backgroundImage.toString(); // parse out background image URL

o.style.backgroundImage = 'none';

// Parse out background image URL from currentStyle.

var i1 = b.indexOf('url("')+5;

var newSrc = b.substr(i1,b.length-i1-2).replace('.gif','.png'); // find first instance of ") after (", chop from string

o.style.writingMode = 'lr-tb'; // Has to be applied so filter "has layout" and is displayed. Seriously. Refer to http://msdn.microsoft.com/workshop/auth ... frame=true

o.style.filter = "progid:"+self.filterID+"(src='"+newSrc+"',sizingMethod='"+(o.className.indexOf('scale')+1?'scale':'crop')+"')";

} else if (o.nodeName == 'IMG') {

var newSrc = o.getAttribute('src').replace('.gif','.png');

// apply filter

o.src = 'image/none.gif'; // get rid of image

o.style.filter = "progid:"+self.filterID+"(src='"+newSrc+"',sizingMethod="+(o.className.indexOf('scale')+1?'scale':'crop')+"')";

o.style.writingMode = 'lr-tb'; // Has to be applied so filter "has layout" and is displayed. Seriously. Refer to http://msdn.microsoft.com/workshop/auth ... frame=true

}

}

 

this.pngMethod = function(o) {

// Native transparency support. Easy to implement. (woo!)

bgImage = this.getBackgroundImage(o);

if (bgImage) {

// set background image, replacing .gif

o.style.backgroundImage = 'url('+bgImage.replace('.gif','.png')+')';

} else if (o.nodeName == 'IMG') {

o.src = o.src.replace('.gif','.png');

} else if (!bgImage) {

// no background image

}

}

 

this.getBackgroundImage = function(o) {

var b, i1; // background-related variables

var bgUrl = null;

if (o.nodeName != 'IMG' && !(this.isIE && this.isMac)) { // ie:mac PNG support broken for DIVs with PNG backgrounds

if (document.defaultView) {

if (document.defaultView.getComputedStyle) {

b = document.defaultView.getComputedStyle(o,'').getPropertyValue('background-image');

i1 = b.indexOf('url(')+4;

bgUrl = b.substr(i1,b.length-i1-1);

} else {

// no computed style

return false;

}

} else {

// no default view

return false;

}

}

return bgUrl;

}

 

this.doNothing = function() {}

 

this.supportTest = function() {

// Determine method to use.

// IE 5.5+/win32: filter

 

if (this.isIE && this.isWin && this.ver >= 5.5) {

// IE proprietary filter method (via DXFilter)

self.transform = self.filterMethod;

} else if (!this.isIE && this.ver < 5) {

// No PNG support or broken support

// Leave existing content as-is

self.transform = null;

return false;

} else if (!this.isIE && this.ver >= 5 || (this.isIE && this.isMac && this.ver >= 5)) { // version 5+ browser (not IE), or IE:mac 5+

self.transform = self.pngMethod;

} else {

// Presumably no PNG support. GIF used instead.

self.transform = null;

return false;

}

return true;

}

 

this.init = function() {

this.supported = this.supportTest();

}

 

}

 

function getElementsByClassName(className,oParent) {

var doc = (oParent||document);

var matches = [];

var nodes = doc.all||doc.getElementsByTagName('*');

for (var i=0; i

if (nodes.className == className || nodes.className.indexOf(className)+1 || nodes.className.indexOf(className+' ')+1 || nodes.className.indexOf(' '+className)+1) {

matches[matches.length] = nodes;

}

}

return matches; // kids, don't play with fire. ;)

}

 

// Instantiate and initialize PNG Handler

 

var pngHandler = new PNGHandler();

 

pngHandler.init();

 

 

addEventHandler(window,'load',snowStormInit,false);

 

Link to comment
Share on other sites

Díky funguje to až na jednu maličkost že mi to pádá jen na header níž ne musim nějak mrknout do kódu a zjistit jak udělat aby to padalo uplně dolu :-)

Link to comment
Share on other sites

Dobrý den, něco podoného jsem hledal na jeden klanoný web. Skoušel jsem to podle návodu co tu píšete stáhl jsem to, ale bohužel se mi nepodařilo to nainstalovat. Postup: http://www.xxxx.xxx.xx --->web--->infusions (jsem sem nahrál to co jsem stáhl (snow_panel) ) potom jsem se přihlásil na web administrační sekce ---->system--->infusions a tady jsem už nenašel to co bych měl nainstalovat prostě se mi to tam neukázalo. Kdyby jste mi někdo poradil budu vám moc vděčný.

Link to comment
Share on other sites

Dobrý den, něco podoného jsem hledal na jeden klanoný web. Skoušel jsem to podle návodu co tu píšete stáhl jsem to, ale bohužel se mi nepodařilo to nainstalovat. Postup: http://www.xxxx.xxx.xx --->web--->infusions (jsem sem nahrál to co jsem stáhl (snow_panel) ) potom jsem se přihlásil na web administrační sekce ---->system--->infusions a tady jsem už nenašel to co bych měl nainstalovat prostě se mi to tam neukázalo. Kdyby jste mi někdo poradil budu vám moc vděčný.

Ten panel mi taky nešel vyřešil jsem to tak že ten kód sněhu jsem si vložil do theme.php a upravil podle sebe a vše funguje :)

Link to comment
Share on other sites

×
×
  • Create New...