<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://www.darkfleetwiki.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AFeuerwerk.js</id>
		<title>MediaWiki:Feuerwerk.js - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://www.darkfleetwiki.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AFeuerwerk.js"/>
		<link rel="alternate" type="text/html" href="https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;action=history"/>
		<updated>2026-05-19T22:17:40Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in DarkfleetWiki</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;diff=126002&amp;oldid=prev</id>
		<title>Galak: für bessere performance bleiben wir beim alten</title>
		<link rel="alternate" type="text/html" href="https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;diff=126002&amp;oldid=prev"/>
				<updated>2015-12-03T01:35:26Z</updated>
		
		<summary type="html">&lt;p&gt;für bessere performance bleiben wir beim alten&lt;/p&gt;
&lt;a href=&quot;https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;amp;diff=126002&amp;amp;oldid=126000&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Galak</name></author>	</entry>

	<entry>
		<id>https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;diff=126000&amp;oldid=prev</id>
		<title>Galak am 3. Dezember 2015 um 01:30 Uhr</title>
		<link rel="alternate" type="text/html" href="https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;diff=126000&amp;oldid=prev"/>
				<updated>2015-12-03T01:30:14Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;amp;diff=126000&amp;amp;oldid=33337&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Galak</name></author>	</entry>

	<entry>
		<id>https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;diff=33337&amp;oldid=prev</id>
		<title>Galak: test! :D</title>
		<link rel="alternate" type="text/html" href="https://www.darkfleetwiki.de/index.php?title=MediaWiki:Feuerwerk.js&amp;diff=33337&amp;oldid=prev"/>
				<updated>2015-01-05T14:53:07Z</updated>
		
		<summary type="html">&lt;p&gt;test! :D&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;////////////////////////////////////////////////////////////////////////&lt;br /&gt;
// Fireworks-Script (c) 2014, Dominik Scholz / go4u.de Webdesign&lt;br /&gt;
////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
var fireworks = {&lt;br /&gt;
&lt;br /&gt;
	///////////////////////////// configuration ////////////////////////////&lt;br /&gt;
	&lt;br /&gt;
	// random colors&lt;br /&gt;
	_color: ['#D0D0D0', '#FF0000', '#FFFF00', '#22FF00', '#2040FF', '#00CCFF', '#FF00FF', '#A319D6'],&lt;br /&gt;
	// gravity factor&lt;br /&gt;
	_gravity: 0.07,&lt;br /&gt;
	// air resistance factor&lt;br /&gt;
	_resistance: 0.975,&lt;br /&gt;
	// zIndex of particles&lt;br /&gt;
	_zIndex: 20000,&lt;br /&gt;
	// maximal age of particles (in msec)&lt;br /&gt;
	_maxAge: 2000,&lt;br /&gt;
	// interval of appearing explosions (in msec)&lt;br /&gt;
	_interval: [500, 2500],&lt;br /&gt;
	// amount of particles per explosion&lt;br /&gt;
	_particlesPerExplosion: 40,&lt;br /&gt;
	// maximal speed of particle at moment of explosion&lt;br /&gt;
	_speed: 5,&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	///////////////////////////// private vars /////////////////////////////&lt;br /&gt;
	&lt;br /&gt;
	_particles: [],&lt;br /&gt;
	_bodyWidth: 0,&lt;br /&gt;
	_bodyHeight: 0,&lt;br /&gt;
	_count: 0,&lt;br /&gt;
	_lastInterval: 0,&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	////////////////////////////// functions ///////////////////////////////&lt;br /&gt;
&lt;br /&gt;
	// init fireworks&lt;br /&gt;
	init: function()&lt;br /&gt;
	{&lt;br /&gt;
		this._addEventListener(window, 'resize', function() { return fireworks.resize.apply(fireworks); });&lt;br /&gt;
		this._addEventListener(window, 'load', function() { return fireworks.start.apply(fireworks); });&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// add an event listener&lt;br /&gt;
	_addEventListener: function(el, name, handler)&lt;br /&gt;
	{&lt;br /&gt;
		if (el.addEventListener)&lt;br /&gt;
			el.addEventListener(name, handler, false); &lt;br /&gt;
		else if (el.attachEvent)&lt;br /&gt;
			el.attachEvent('on' + name, handler);&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// start fireworks&lt;br /&gt;
	start: function()&lt;br /&gt;
	{&lt;br /&gt;
		// init window size&lt;br /&gt;
		this.resize();&lt;br /&gt;
&lt;br /&gt;
		// start to move particles&lt;br /&gt;
		this._animFn = function() {fireworks._move();};&lt;br /&gt;
		this._lastInterval = this._time();&lt;br /&gt;
		requestAnimFrame(this._animFn);&lt;br /&gt;
		&lt;br /&gt;
		this._addExplosion();&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// get current time&lt;br /&gt;
	_time: function()&lt;br /&gt;
	{&lt;br /&gt;
		return +new Date();&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	// return a random integer&lt;br /&gt;
	_random: function(value)&lt;br /&gt;
	{&lt;br /&gt;
		return Math.random() * value;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	// return a random array element&lt;br /&gt;
	_randomArray: function(arr)&lt;br /&gt;
	{&lt;br /&gt;
		return arr[&lt;br /&gt;
			Math.floor(&lt;br /&gt;
				Math.random() * (arr.length)&lt;br /&gt;
			)&lt;br /&gt;
		];&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// add a new explosion&lt;br /&gt;
	_addExplosion: function()&lt;br /&gt;
	{&lt;br /&gt;
		var x = Math.floor(this._random(this._bodyWidth)),&lt;br /&gt;
			y = Math.floor((this._random(.5) + .1) * this._bodyHeight),&lt;br /&gt;
			dx = this._random(10) - 5,&lt;br /&gt;
			dy = this._random(-2) - 1,&lt;br /&gt;
			c1 = this._randomArray(this._color),&lt;br /&gt;
			c2 = this._randomArray(this._color);&lt;br /&gt;
		&lt;br /&gt;
		for (var i = 0; i &amp;lt; this._particlesPerExplosion; i++)&lt;br /&gt;
		{&lt;br /&gt;
			this._createParticle(&lt;br /&gt;
				x,&lt;br /&gt;
				y,&lt;br /&gt;
				dx,&lt;br /&gt;
				dy,&lt;br /&gt;
				i / (this._particlesPerExplosion - 1) * 180 * Math.PI,&lt;br /&gt;
				this._random(this._speed),&lt;br /&gt;
				this._random(1) &amp;gt; .5 ? c1 : c2&lt;br /&gt;
			);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		window.setTimeout(&lt;br /&gt;
			function() { return fireworks._addExplosion.apply(fireworks);},&lt;br /&gt;
			this._random(this._interval[1] - this._interval[0]) + this._interval[0]&lt;br /&gt;
		);&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	// creates a new particle&lt;br /&gt;
	_createParticle: function(x, y, dx, dy, rot, speed, color)&lt;br /&gt;
	{&lt;br /&gt;
		var el = null,&lt;br /&gt;
			foundEl = false,&lt;br /&gt;
			p = this._particles;&lt;br /&gt;
&lt;br /&gt;
		// look for old particle&lt;br /&gt;
		for (var i = 0, l = p.length; i &amp;lt; l; i++)&lt;br /&gt;
			if (p[i].data.age &amp;gt; 1)&lt;br /&gt;
			{&lt;br /&gt;
				el = p[i];&lt;br /&gt;
				foundEl = true;&lt;br /&gt;
				break;&lt;br /&gt;
			}&lt;br /&gt;
	&lt;br /&gt;
		// create span child for particles&lt;br /&gt;
		if (!foundEl)&lt;br /&gt;
		{&lt;br /&gt;
			el = document.createElement('div');&lt;br /&gt;
			el.className      = 'particle';&lt;br /&gt;
			el.style.position = 'absolute';&lt;br /&gt;
			el.style.fontSize = '20px';&lt;br /&gt;
			el.style.zIndex   = this._zIndex;&lt;br /&gt;
			el.style.width    = '10px';&lt;br /&gt;
			el.style.overflow = 'hidden';&lt;br /&gt;
			el.innerHTML      = '&amp;amp;#x25cf;';&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		el.style.left     = x + 'px';&lt;br /&gt;
		el.style.top      = y + 'px';&lt;br /&gt;
		el.style.color    = color;&lt;br /&gt;
		el.data = {&lt;br /&gt;
			x: x,&lt;br /&gt;
			y: y,&lt;br /&gt;
			dx: Math.cos(rot) * speed + dx,&lt;br /&gt;
			dy: Math.sin(rot) * speed + dy,&lt;br /&gt;
			color: color,&lt;br /&gt;
			age: Math.random() * .25&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		if (!foundEl)&lt;br /&gt;
		{&lt;br /&gt;
			document.getElementsByTagName('body')[0].appendChild(el);&lt;br /&gt;
			this._particles.push(el);&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// move existing particles&lt;br /&gt;
	_move: function()&lt;br /&gt;
	{&lt;br /&gt;
		requestAnimFrame(this._animFn);&lt;br /&gt;
	&lt;br /&gt;
		// calculate movement factor&lt;br /&gt;
		var dif = this._time() - this._lastInterval;&lt;br /&gt;
		this._lastInterval = this._time();&lt;br /&gt;
		&lt;br /&gt;
		var delta = dif / 20,&lt;br /&gt;
			el,&lt;br /&gt;
			d,&lt;br /&gt;
			p = this._particles,&lt;br /&gt;
			r = Math.pow(this._resistance, delta),&lt;br /&gt;
			g = this._gravity * delta,&lt;br /&gt;
			a = dif / this._maxAge;&lt;br /&gt;
		&lt;br /&gt;
		for (var i = 0, l = p.length; i &amp;lt; l; i++)&lt;br /&gt;
		{&lt;br /&gt;
			el = p[i];&lt;br /&gt;
			d = el.data;&lt;br /&gt;
			&lt;br /&gt;
			if (d.age &amp;gt; 1)&lt;br /&gt;
				continue;&lt;br /&gt;
			&lt;br /&gt;
			d.age += a;&lt;br /&gt;
			d.dy += g;&lt;br /&gt;
			d.dx *= r;&lt;br /&gt;
			d.dy *= r;&lt;br /&gt;
			d.x += d.dx * delta;&lt;br /&gt;
			d.y += d.dy * delta;&lt;br /&gt;
			&lt;br /&gt;
			if (d.x &amp;lt; 0)&lt;br /&gt;
			{&lt;br /&gt;
				d.dx *= -1;&lt;br /&gt;
				d.x = 0;&lt;br /&gt;
			}&lt;br /&gt;
			if (d.x &amp;gt; this._bodyWidth)&lt;br /&gt;
			{&lt;br /&gt;
				d.dx *= -1;&lt;br /&gt;
				d.x = this._bodyWidth;&lt;br /&gt;
			}&lt;br /&gt;
			if (d.y &amp;lt; 0)&lt;br /&gt;
			{&lt;br /&gt;
				d.dy *= -1;&lt;br /&gt;
				d.y = 0;&lt;br /&gt;
			}&lt;br /&gt;
			if (d.y &amp;gt; this._bodyHeight)&lt;br /&gt;
			{&lt;br /&gt;
				d.dy *= -1;&lt;br /&gt;
				d.y = this._bodyHeight;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (d.age &amp;gt; 1)&lt;br /&gt;
				d.x = d.y = 0;&lt;br /&gt;
			&lt;br /&gt;
			el.style.left = d.x + 'px';&lt;br /&gt;
			el.style.top = d.y + 'px';&lt;br /&gt;
			el.style.color = (Math.random() * .5 + d.age &amp;gt;= 1) ? 'transparent' : d.color;&lt;br /&gt;
			el.style.fontSize = (1 - d.age) * 5 + 5 + 'px';&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	// calculate new positions for all particles&lt;br /&gt;
	resize: function()&lt;br /&gt;
	{&lt;br /&gt;
		// get new width and height&lt;br /&gt;
		this._bodyWidth = this._getWindowWidth() - 10;&lt;br /&gt;
		this._bodyHeight = this._getWindowHeight() - 20;&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// get window width&lt;br /&gt;
	_getWindowWidth: function()&lt;br /&gt;
	{&lt;br /&gt;
		return document.getElementsByTagName('body')[0].offsetWidth;&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	// get window height&lt;br /&gt;
	_getWindowHeight: function()&lt;br /&gt;
	{&lt;br /&gt;
		var h = Math.max(self.innerHeight || 0, window.innerHeight || 0);&lt;br /&gt;
		&lt;br /&gt;
		if (document.documentElement)&lt;br /&gt;
			h = Math.max(h, document.documentElement.clientHeight || 0);&lt;br /&gt;
		if (document.body)&lt;br /&gt;
		{&lt;br /&gt;
			h = Math.max(h, document.body.clientHeight || 0);&lt;br /&gt;
			h = Math.max(h, document.body.scrollHeight || 0);&lt;br /&gt;
			h = Math.max(h, document.body.offsetHeight || 0);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return h;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// shim layer with setTimeout fallback&lt;br /&gt;
window.requestAnimFrame = (function(){&lt;br /&gt;
  return  window.requestAnimationFrame       || &lt;br /&gt;
		  window.webkitRequestAnimationFrame || &lt;br /&gt;
		  window.mozRequestAnimationFrame    || &lt;br /&gt;
		  window.oRequestAnimationFrame      || &lt;br /&gt;
		  window.msRequestAnimationFrame     || &lt;br /&gt;
		  function (cb){&lt;br /&gt;
			window.setTimeout(cb, 1000 / 60);&lt;br /&gt;
		  };&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
fireworks.init();&lt;/div&gt;</summary>
		<author><name>Galak</name></author>	</entry>

	</feed>