Added heart spray on click as a gimmick

master
Toerd@480 5 years ago
parent 5925e572e3
commit 7ee0ebe302

@ -303,6 +303,26 @@ nav {
margin-left: calc(var(--h-info) * 0.25 * -0.70); margin-left: calc(var(--h-info) * 0.25 * -0.70);
} }
#avatar:hover {
cursor: pointer;
}
.wobble {
animation: wob 1s infinite;
}
@keyframes wob {
0% {
transform: scale(1.0) rotate(0deg);
}
50% {
transform: scale(0.8);
}
100% {
transform: scale(1.0) rotate(360deg);
}
}
.flying-text { .flying-text {
display: inline-block; display: inline-block;
position: absolute; position: absolute;

@ -30,6 +30,11 @@ function initialize() {
runTextAnimation = true; runTextAnimation = true;
flyingText(welcome); flyingText(welcome);
hideElement(overlay); hideElement(overlay);
} else if (curr.id === "avatar") {
curr.classList.add("wobble");
for (let i = 0; i < 10; ++i)
shootText(welcome, 3, "♥");
setTimeout(() => {curr.classList.remove("wobble");}, 2000);
} }
}); });

@ -8,8 +8,17 @@
// set a global var "run" to true before running this function // set a global var "run" to true before running this function
"use strict"; "use strict";
async function flyingText(canvas) { async function flyingText(canvas) {
canvas.classList.remove("hidden");
while (runTextAnimation) {
// wait till ele is rdy in dom + time between spawns
await shootText(canvas, 4);
}
}
async function shootText(canvas, sec, sta) {
// TODO: move to argument, load from backend // TODO: move to argument, load from backend
let statements = ["Keyboard-Nerd", "🖤", "Emacs", let statements = sta || ["Keyboard-Nerd", "🖤", "Emacs",
"Lives in VI", "GNU/Linux", "Arch Linux", "Lives in VI", "GNU/Linux", "Arch Linux",
"Computer Science", "Design", "Computer Science", "Design",
"Javascript", "C/C++", "Go", "Bash", "Javascript", "C/C++", "Go", "Bash",
@ -28,12 +37,8 @@ async function flyingText(canvas) {
"Winter is coming!", "😺 Person"]; "Winter is coming!", "😺 Person"];
let stCount = statements.length; let stCount = statements.length;
let animationTime = 4; let animationTime = sec;
let maxX , maxY, x, y; let maxX , maxY, x, y;
canvas.classList.remove("hidden");
while (runTextAnimation) {
// Browser resize // Browser resize
maxX = canvas.offsetWidth / 2; maxX = canvas.offsetWidth / 2;
maxY = canvas.offsetHeight / 2; maxY = canvas.offsetHeight / 2;
@ -52,8 +57,6 @@ async function flyingText(canvas) {
y = (getRand(2) == 1) ? -1*y : 0.8 * y; y = (getRand(2) == 1) ? -1*y : 0.8 * y;
canvas.appendChild(curr); canvas.appendChild(curr);
// wait till ele is rdy in dom + time between spawns
await sleep(1000); await sleep(1000);
// add the stuff that should be animated (transition in class) // add the stuff that should be animated (transition in class)
@ -65,7 +68,6 @@ async function flyingText(canvas) {
curr.remove(); curr.remove();
}, animationTime * 1000 + 2000); }, animationTime * 1000 + 2000);
} }
}
function getRand(max, min) { function getRand(max, min) {
min = min || 0; min = min || 0;

Loading…
Cancel
Save