A simple terminal text effect written in vanilla JS, no dependencies. Just copy the function into your code and have fun.
Created
February 23, 2016 04:56
-
-
Save anonymous/3fdfb309eeb87825e911 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