Confetti for the winners
This commit is contained in:
5
package-lock.json
generated
5
package-lock.json
generated
@@ -2334,6 +2334,11 @@
|
|||||||
"integrity": "sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA==",
|
"integrity": "sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"canvas-confetti": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/canvas-confetti/-/canvas-confetti-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-0B49O9CfLciAYz4hriu9pvWNGkCtVcpvyNFKWZI+JVWJM5nJTMg5MX3cFzatyeYcOL6bR1Jw3yhZKbgt03O8/Q=="
|
||||||
|
},
|
||||||
"caseless": {
|
"caseless": {
|
||||||
"version": "0.12.0",
|
"version": "0.12.0",
|
||||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
"@babel/polyfill": "~7.2",
|
"@babel/polyfill": "~7.2",
|
||||||
"@zxing/library": "^0.15.2",
|
"@zxing/library": "^0.15.2",
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
|
"canvas-confetti": "^1.2.0",
|
||||||
"chart.js": "^2.9.3",
|
"chart.js": "^2.9.3",
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
"clean-webpack-plugin": "^3.0.0",
|
||||||
"compression": "^1.7.4",
|
"compression": "^1.7.4",
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import confetti from "canvas-confetti";
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
currentWinner: {
|
currentWinner: {
|
||||||
@@ -99,6 +100,11 @@ export default {
|
|||||||
}
|
}
|
||||||
this.drawing = false;
|
this.drawing = false;
|
||||||
this.drawingDone = true;
|
this.drawingDone = true;
|
||||||
|
if(this.currentName == "Amund Brandsrud"){
|
||||||
|
this.startUberConfetti();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.startConfetti();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.currentName = this.attendees[
|
this.currentName = this.attendees[
|
||||||
@@ -147,9 +153,45 @@ export default {
|
|||||||
case 3:
|
case 3:
|
||||||
return "yellow";
|
return "yellow";
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
startConfetti(){
|
||||||
|
var duration = 7 * 1000;
|
||||||
|
var animationEnd = Date.now() + duration;
|
||||||
|
var defaults = { startVelocity: 30, spread: 360, ticks: 60, zIndex: 0 };
|
||||||
|
function randomInRange(min, max) {
|
||||||
|
return Math.random() * (max - min) + min;
|
||||||
|
}
|
||||||
|
var interval = setInterval(function() {
|
||||||
|
var timeLeft = animationEnd - Date.now();
|
||||||
|
if (timeLeft <= 0) {
|
||||||
|
return clearInterval(interval);
|
||||||
|
}
|
||||||
|
var particleCount = 50 * (timeLeft / duration);
|
||||||
|
confetti(Object.assign({}, defaults, { particleCount, origin: { x: randomInRange(0.1, 0.3), y: Math.random() - 0.2 } }));
|
||||||
|
confetti(Object.assign({}, defaults, { particleCount, origin: { x: randomInRange(0.7, 0.9), y: Math.random() - 0.2 } }));
|
||||||
|
}, 250);
|
||||||
|
},
|
||||||
|
startUberConfetti(){
|
||||||
|
var duration = 7 * 1000;
|
||||||
|
var animationEnd = Date.now() + duration;
|
||||||
|
var defaults = { startVelocity: 30, spread: 360, ticks: 60, zIndex: 0 };
|
||||||
|
function randomInRange(min, max) {
|
||||||
|
return Math.random() * (max - min) + min;
|
||||||
|
}
|
||||||
|
var interval = setInterval(function() {
|
||||||
|
var timeLeft = animationEnd - Date.now();
|
||||||
|
if (timeLeft <= 0) {
|
||||||
|
return clearInterval(interval);
|
||||||
|
}
|
||||||
|
var particleCount = 50 * (timeLeft / duration);
|
||||||
|
confetti({startVelocity: 65, angle: randomInRange(55, 125),particleCount: particleCount, angle: 60, spread: 55, origin: { x: 0 }});
|
||||||
|
confetti({startVelocity: 65, angle: randomInRange(55, 125),particleCount: particleCount, angle: 120, spread: 55, origin: { x: 1 }});
|
||||||
|
confetti({startVelocity: 65, angle: randomInRange(55, 125),spread: randomInRange(50, 70),particleCount: randomInRange(5, 15),origin: { y: 1 }});
|
||||||
|
}, 250);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
Reference in New Issue
Block a user