aboutsummaryrefslogtreecommitdiff
path: root/point/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'point/plugins')
-rw-r--r--point/plugins/autoscale/autoscale.js70
-rw-r--r--point/plugins/doge/doge.css55
-rw-r--r--point/plugins/doge/doge.js89
3 files changed, 214 insertions, 0 deletions
diff --git a/point/plugins/autoscale/autoscale.js b/point/plugins/autoscale/autoscale.js
new file mode 100644
index 0000000..25ed39b
--- /dev/null
+++ b/point/plugins/autoscale/autoscale.js
@@ -0,0 +1,70 @@
1/*
2 * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint>
3 * Copyright (C) 2014 Pacien TRAN-GIRARD
4 *
5 * "What's The Point" is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * "What's The Point" is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19define([], function () {
20
21 var autoscale = {
22
23 init: function () {
24 this.container = document.body;
25 this.reference = document.getElementsByTagName("p-screen")[0];
26 this.target = this.reference;
27
28 this.centerTarget();
29 this.bindEvent();
30 this.resize();
31 },
32
33 centerTarget: function () {
34 this.target.style.position = "absolute";
35 this.target.style.top = "50%";
36 this.target.style.left = "50%";
37 this.target.style.marginTop = -this.target.offsetHeight / 2 + "px";
38 this.target.style.marginLeft = -this.target.offsetWidth / 2 + "px";
39 document.body.style.overflow = "hidden";
40 },
41
42 applyTransformation: function (transformation) {
43 this.target.style.MozTransform = transformation;
44 this.target.style.WebkitTransform = transformation;
45 this.target.style.OTransform = transformation;
46 this.target.style.msTransform = transformation;
47 this.target.style.transform = transformation;
48 },
49
50 resize: function () {
51 var widthRatio = this.container.offsetWidth / this.reference.offsetWidth;
52 var heightRatio = this.container.offsetHeight / this.reference.offsetHeight;
53
54 var scaleRatio = Math.min(widthRatio, heightRatio);
55 scaleRatio = scaleRatio < 1 ? scaleRatio : 1;
56
57 this.applyTransformation("scale(" + scaleRatio + ")");
58 },
59
60 bindEvent: function () {
61 window.addEventListener("resize", function () {
62 autoscale.resize();
63 });
64 },
65
66 };
67
68 return autoscale;
69
70});
diff --git a/point/plugins/doge/doge.css b/point/plugins/doge/doge.css
new file mode 100644
index 0000000..9b341d2
--- /dev/null
+++ b/point/plugins/doge/doge.css
@@ -0,0 +1,55 @@
1/*
2 * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint>
3 * Copyright (C) 2014 Pacien TRAN-GIRARD
4 *
5 * "What's The Point" is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * "What's The Point" is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19d-doge {
20 position: absolute;
21 font-family: "Comic Sans MS";
22 font-weight: bold;
23 animation: fade forwards;
24 -webkit-animation: fade forwards;
25}
26
27@keyframes fade {
28 0% {
29 opacity: 0;
30 }
31 25% {
32 opacity: 1;
33 }
34 50% {
35 opacity: 1;
36 }
37 100% {
38 opacity: 0;
39 }
40}
41
42@-webkit-keyframes fade {
43 0% {
44 opacity: 0;
45 }
46 25% {
47 opacity: 1;
48 }
49 50% {
50 opacity: 1;
51 }
52 100% {
53 opacity: 0;
54 }
55}
diff --git a/point/plugins/doge/doge.js b/point/plugins/doge/doge.js
new file mode 100644
index 0000000..692ec03
--- /dev/null
+++ b/point/plugins/doge/doge.js
@@ -0,0 +1,89 @@
1/*
2 * This file is part of "What's The Point" <https://github.com/Pacien/WhatsThePoint>
3 * Copyright (C) 2014 Pacien TRAN-GIRARD
4 *
5 * "What's The Point" is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * "What's The Point" is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19define([ "css!plugins/doge/doge" ], function () {
20
21 var doge = {
22
23 TAG: "d-doge",
24 NUMBER: 2,
25 INTERVAL: 4000,
26 MAX_SIZE: 2,
27 MIN_SIZE: 3,
28 WORD: [ "wow", "so slides", "many points", "very slideshow", "such clear", "much serious" ],
29 COLOURS: [ "red", "green", "orange", "violet", "aqua", "yellow", "slateblue", "purple", "pink", "lime", "fuchsia", "gold", "indigo" ],
30
31 init: function () {
32 this.woofs = [];
33 this.c = 0;
34 setInterval(doge.spawn, this.INTERVAL);
35 },
36
37 getRandomFromInterval: function (min, max) {
38 return Math.random() * (max - min) + min;
39 },
40
41 getRandomFontSize: function () {
42 return doge.getRandomFromInterval(doge.MIN_SIZE, doge.MAX_SIZE);
43 },
44
45 getRandomItem: function (items) {
46 return items[Math.floor(Math.random() * items.length)];
47 },
48
49 getRandomColour: function () {
50 return doge.getRandomItem(doge.COLOURS);
51 },
52
53 getRandomWord: function () {
54 return doge.getRandomItem(doge.WORD);
55 },
56
57 woof: function () {
58 var woof = document.createElement(doge.TAG);
59
60 document.body.appendChild(woof);
61 doge.woofs.push(woof);
62
63 woof.appendChild(document.createTextNode(doge.getRandomWord()));
64
65 woof.style.animationDuration = doge.NUMBER * doge.INTERVAL + "ms";
66 woof.style.WebkitAnimationDuration = woof.style.animationDuration;
67
68 woof.style.fontSize = doge.getRandomFontSize() + "em";
69 woof.style.color = doge.getRandomColour();
70
71 woof.style.top = doge.getRandomFromInterval(0, window.innerHeight - woof.offsetHeight) + "px";
72 woof.style.left = doge.getRandomFromInterval(0, window.innerWidth - woof.offsetWidth) + "px";
73
74 },
75
76 spawn: function () {
77 if (doge.woofs.length >= doge.NUMBER) {
78 doge.woofs[0].remove();
79 doge.woofs.splice(0, 1);
80 }
81
82 doge.woof();
83 },
84
85 };
86
87 return doge;
88
89});