old work pushed
This commit is contained in:
parent
dad292e2fd
commit
e27fbc792d
15 changed files with 379 additions and 1 deletions
42
static/js/typewriter.js
Normal file
42
static/js/typewriter.js
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
// Code from Benjamin Hollon (benjaminhollon@fosstodon.org)
|
||||
|
||||
const addCharDelay = 75;
|
||||
const removeCharDelay = 45;
|
||||
const wordDelay = 1500;
|
||||
|
||||
const typewriterElement = document.getElementById('typewriter');
|
||||
const typewriterPrompts = [
|
||||
'Amateur Radio Operator',
|
||||
'Electrical Engineering Student',
|
||||
'Film Enjoyer'
|
||||
];
|
||||
let currentTypewriterIndex = 0;
|
||||
|
||||
function typeNextPrompt() {
|
||||
function typeChar(char) {
|
||||
if (char !== '~') typewriterElement.innerText += char;
|
||||
}
|
||||
function removeChar() {
|
||||
typewriterElement.innerText = typewriterElement.innerText.slice(0, -1);
|
||||
}
|
||||
|
||||
const word = typewriterPrompts[currentTypewriterIndex];
|
||||
let delaySoFar = 0;
|
||||
// Type it
|
||||
for (const char of word) {
|
||||
setTimeout(typeChar.bind(this, char), delaySoFar);
|
||||
delaySoFar += addCharDelay;
|
||||
}
|
||||
|
||||
delaySoFar += wordDelay;
|
||||
|
||||
for (const char of word.split('').reverse()) {
|
||||
setTimeout(removeChar, delaySoFar);
|
||||
delaySoFar += removeCharDelay;
|
||||
}
|
||||
|
||||
currentTypewriterIndex = (currentTypewriterIndex + 1) % typewriterPrompts.length;
|
||||
setTimeout(typeNextPrompt, delaySoFar);
|
||||
}
|
||||
|
||||
setTimeout(typeNextPrompt, wordDelay / 2);
|
||||
Loading…
Add table
Add a link
Reference in a new issue