Nicht noch ein Schneescript...

Sprite

Mitglied
Doch, leider wieder ein Schneescript ;-]. Ich habe das Script im Forum per Suche gefunden und es gefällt mir sehr gut. Hier nochmal der Code (ich war mal so frei und habe das Impressum da rausgenommen, um euch nicht unnötig zu langweilen, Copyright ist 2003 von Peter Gehrig):

Code:
<script language="JavaScript" type="text/javascript">
<!--
// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax = 35;
// Set the colors for the snow. Add as many colors as you like
var snowcolor = new Array('#eeeeff', '#ffffdd', '#eeeedd', '#ffffff');
// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowtype = new Array('Arial Black', 'Arial Narrow', 'Times', 'Comic Sans MS');
// Set the letter that creates your snowflake (recommended: *)
var snowletter = '*';
// Set the speed of sinking (recommended values range from 0.3 to 2)
var sinkspeed = 0.6;
// Set the maximal-size of your snowflaxes
var snowmaxsize = 32;
// Set the minimal-size of your snowflaxes
var snowminsize = 8;
// Set the snowing-zone
// Set 1 for all-over-snowing, Set 2 for left-side-snowing , Set 3 for center-snowing, Set 4 for right-side-snowing
var snowingzone = 1;

// Do not edit below this line
var snow = new Array();
var marginbottom;
var marginright;
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(range)
{
	return Math.floor(range * Math.random());
}

function initsnow()
{
	if (ie5 || opera)
	{
		marginbottom = document.body.clientHeight;
		marginright  = document.body.clientWidth;
	}
	else if (ns6)
	{
		marginbottom = window.innerHeight;
		marginright  = window.innerWidth;
	}

	var snowsizerange = snowmaxsize - snowminsize;

	for (var 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(snowsizerange) + snowminsize;
		snow[i].style.fontSize = snow[i].size;
		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;
		snow[i].style.top = snow[i].posy;
	}

	movesnow();
}

function movesnow()
{
	for (var 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]);
		snow[i].style.top = snow[i].posy;

		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 = 0;
		}
	}

	var timer = setTimeout('movesnow();', 20); //Wert von 10 bis 100
}

for (var i = 0; i <= snowmax; i++)
	document.write('<span id="s' + i +'" style="position: absolute; top: -' + snowmaxsize + '">' + snowletter + '</span>');

if (browserok)
	window.onload = initsnow;
//-->
</script>

Soweit so gut, geht alles hervorragend. Aber: Ich finde es unschön, dass es immer in einem fest definierten Bereich schneit. Wenn man also (z.B.) runter scrollt, schneit es oben weiter, unten ist gar nichts.

Die Frage ist also: Was müsste ich ändern, damit es immer ganzseitig überall im Browserfenster schneit, egal wohin ich scrolle?

PS: Ich würde gerne dieses gezeigte Script benutzen, da viele Textschnee-Scripte nur im IE arbeiten und GIF-Bilder-Scripte möchte ich nicht nehmen.
 
Zurück