new typing thingy

main
Stephen 1 month ago
commit 141a5c02fc

BIN
.DS_Store vendored

Binary file not shown.

@ -0,0 +1,11 @@
<html>
<head>
<link href="./style.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>do you ever dream about work?</h1>
<p id="current" class="visible" style='font-wariation-settings: "wdth" 50, "XTRA" 400, "XOPQ" 175;' tabindex="1">
</p>
</body>
<script src="./script.js"></script>
</html>

@ -0,0 +1,91 @@
document.addEventListener('keydown', updateChar);
document.addEventListener('keyup', stopChar);
var i = 0;
var txt = '';
var speed = 50;
var keyisdown = 0;
var newpercentage = 0;
var tempwdth = 50;
var tempXTRA = 400;
var tempXOPQ = 60;
var fontstring = 'font-variation-settings: "wdth" 50, "XTRA" 400, "XOPQ" 60;';
//------- experiment with keydown keyup
var timer;
function updateChar(e) {
// console.log(e);
if(keyisdown == 0){typeWriter()};
keyisdown = 1;
if(timer) return;
timer= setInterval(growLetter, 1);
}
function stopChar() {
keyisdown = 0;
clearInterval(timer);
timer= null;
tempwdth = 50;
tempXTRA = 400;
tempXOPQ = 60;
}
//--------------the typewriter stuff
function typeWriter() {
//clear the html initially for a text
if (i === 0)
document.getElementById("current").innerHTML = '';
if (i < txt.length) {
restoreText();
document.getElementById("current").innerHTML += "<span id='"+i+"' class='visible' style='"+fontstring+"'>"+txt.charAt(i)+"</span>";
i++;
if(txt.charAt(i-1)==" "){typeWriter()};
}
if(i==txt.length){
clearText();
i++;
setTimeout(newQuote, 4000);
}
}
var quotes = [
"I was at a festival or summer camp. I looked in the main room and saw loads of synths set up, they were going to play a gig. And my brother was going to play with them. I was so annoyed and upset that they didn't tell me.",
"I was a designer, a weapons designer. I made a drone for a friend but he used it for evil. A woman got hurt, we were eating jelly. When he died she would go in an orphanage, I would be put in the army. My stomach was going to explode. In the army I finished painting my red stencils, warning signs. "
]
//var quotes = ["test1.", "test2."]
function newQuote() {
//set the typing text
txt = quotes[Math.floor(Math.random() * quotes.length)];
//reset the index
i = 0;
}
function clearText(){
document.getElementById('current').classList.add("disappear");
}
function restoreText(){
document.getElementById('current').classList.remove("disappear");
}
function growLetter() {
targetwdth = 151;
targetXTRA = 603;
targetXOPQ = 175;
document.getElementById(i-1).style.fontVariationSettings = "\"wdth\" " + tempwdth + ", \"XTRA\" " + tempXTRA + ", \"XOPQ\" " + tempXOPQ;
tempwdth++;
tempXTRA++;
// tempXOPQ++;
}
newQuote();

@ -0,0 +1,34 @@
body{
font-family: 'Roboto Flex', 'MutatorMathTest', 'Amstelvar';
/* font-variation-settings: "wdth" 50, "XTRA" 400, "XOPQ" 60; */
/*font-variation-settings: "wdth" 151, "XTRA" 603, "XOPQ" 175: */
width: 86vw;
margin: 8rem auto;
color: #00f;
background-color: #ada;
}
h1{
font-family: monospace;
font-style: italic;
font-size: 1rem;
font-weight: 400;
}
#current{
font-weight: 700;
font-size: 7rem;
text-transform: uppercase;
line-height: 1;
margin: 0;
}
.visible{
visibility: visible;
opacity: 1;
/*transition: opacity 2s linear;*/
transition: none, none;
}
.disappear {
visibility: hidden;
opacity: 0;
transition: visibility 0s 4s, opacity 4s linear;
}
Loading…
Cancel
Save