From af7b9dba3e48a7ca2ef6b3dd45e05c7f2cc118a3 Mon Sep 17 00:00:00 2001 From: Astro Date: Tue, 2 Oct 2012 03:20:19 +0200 Subject: [PATCH] datenspuren 2012: derbug.js --- .../static/datenspuren/2012/images/derbug.png | Bin 0 -> 5078 bytes .../static/datenspuren/2012/script/derbug.js | 128 ++++++++++++++++++ xsl/datenspuren/xhtml5.xsl | 3 + 3 files changed, 131 insertions(+) create mode 100644 content/static/datenspuren/2012/images/derbug.png create mode 100644 content/static/datenspuren/2012/script/derbug.js diff --git a/content/static/datenspuren/2012/images/derbug.png b/content/static/datenspuren/2012/images/derbug.png new file mode 100644 index 0000000000000000000000000000000000000000..314ecd7a1e37f78863fe85883286d9d77d63eba9 GIT binary patch literal 5078 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 MAX_BUGS) + return; + + bugs.push(new Bug()); +} + +function hideAll() { + if (spawnInterval) { + clearInterval(spawnInterval); + spawnInterval = null; + hideAll(); + } + + for(var i = 0; i < bugs.length; i++) { + bugs[i].shouldHide = true; + } + bugs = []; +} + +function Bug() { + this.alpha = 0; + this.rotation = 0; + this.x = $('body').scrollLeft() + Math.floor(window.innerWidth * Math.random()); + this.y = $('body').scrollTop() + Math.floor(window.innerHeight * Math.random()); + this.selectTarget(); + + this.el = $(''); + this.el.css({ position: 'absolute', + width: "32px", + height: "32px" + }); + $('body').append(this.el); + /*console.log("new bug", this, this.x, this.y);*/ + + this.think(); +} +Bug.prototype = { + update: function() { + this.el.css({ left: Math.floor(this.x) + "px", + top: Math.floor(this.y) + "px", + opacity: this.alpha, + transform: "rotate(" + this.rotation + "rad)", + '-webkitTransform': "rotate(" + this.rotation + "rad)", + '-mozTransform': "rotate(" + this.rotation + "rad)" + }); + }, + selectTarget: function() { + this.targetRotation = 2 * Math.PI * (Math.random() - 0.5); + this.targetSteps = 5 + Math.ceil(10 * Math.random()); + }, + think: function() { + if (this.shouldHide && this.alpha > 0) { + /* fading out */ + this.alpha -= 0.1; + } else if (this.shouldHide) { + this.el.remove(); + /* destroy + * HACK: Avoid nextTick() */ + return; + } else if (this.alpha < 1) { + /* fading in */ + this.alpha += 0.1; + } + + var dr = this.targetRotation - this.rotation; + if (Math.abs(dr) > 1) { + this.rotation += Math.random() * dr / 10; + } + if (this.targetSteps > 0) { + this.targetSteps--; + this.x += Math.sin(this.rotation); + this.y -= Math.cos(this.rotation); + + /* Emergency suicide: */ + if (this.x < 16 || + this.x > $('body').innerWidth() - 16 || + this.y < 16 || + this.y > $('body').innerHeight() - 16) { + this.shouldHide = true; + } + } else { + this.selectTarget(); + } + + this.update(); + nextTick(this.think.bind(this)); + } +}; + +var nextTick = + window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.msRequestAnimationFrame || + window.oRequestAnimationFrame || + function(f) { + window.setTimeout(f, 40); + }; diff --git a/xsl/datenspuren/xhtml5.xsl b/xsl/datenspuren/xhtml5.xsl index f915fd765..4c207edb8 100644 --- a/xsl/datenspuren/xhtml5.xsl +++ b/xsl/datenspuren/xhtml5.xsl @@ -251,6 +251,9 @@ +