A simple terminal text effect written in vanilla JS, no dependencies. Just copy the function into your code and have fun.
Created
November 28, 2020 14:59
-
-
Save OrlandoHC/ac4921748a7856d5028529734710d35f to your computer and use it in GitHub Desktop.
Terminal Text Effect
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class='console-container'><span id='text'></span><div class='console-underscore' id='console'>_</div></div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// function([string1, string2],target id,[color1,color2]) | |
consoleText(['Hello World.', 'Console Text', 'Made with Love.'], 'text',['tomato','rebeccapurple','lightblue']); | |
function consoleText(words, id, colors) { | |
if (colors === undefined) colors = ['#fff']; | |
var visible = true; | |
var con = document.getElementById('console'); | |
var letterCount = 1; | |
var x = 1; | |
var waiting = false; | |
var target = document.getElementById(id) | |
target.setAttribute('style', 'color:' + colors[0]) | |
window.setInterval(function() { | |
if (letterCount === 0 && waiting === false) { | |
waiting = true; | |
target.innerHTML = words[0].substring(0, letterCount) | |
window.setTimeout(function() { | |
var usedColor = colors.shift(); | |
colors.push(usedColor); | |
var usedWord = words.shift(); | |
words.push(usedWord); | |
x = 1; | |
target.setAttribute('style', 'color:' + colors[0]) | |
letterCount += x; | |
waiting = false; | |
}, 1000) | |
} else if (letterCount === words[0].length + 1 && waiting === false) { | |
waiting = true; | |
window.setTimeout(function() { | |
x = -1; | |
letterCount += x; | |
waiting = false; | |
}, 1000) | |
} else if (waiting === false) { | |
target.innerHTML = words[0].substring(0, letterCount) | |
letterCount += x; | |
} | |
}, 120) | |
window.setInterval(function() { | |
if (visible === true) { | |
con.className = 'console-underscore hidden' | |
visible = false; | |
} else { | |
con.className = 'console-underscore' | |
visible = true; | |
} | |
}, 400) | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@import url(https://fonts.googleapis.com/css?family=Khula:700); | |
body { | |
background: #111; | |
} | |
.hidden { | |
opacity:0; | |
} | |
.console-container { | |
font-family:Khula; | |
font-size:4em; | |
text-align:center; | |
height:200px; | |
width:600px; | |
display:block; | |
position:absolute; | |
color:white; | |
top:0; | |
bottom:0; | |
left:0; | |
right:0; | |
margin:auto; | |
} | |
.console-underscore { | |
display:inline-block; | |
position:relative; | |
top:-0.14em; | |
left:10px; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment