I am looking to make a typewriter effect using a Variable. My Variable will select a random string listed to write. I want it to list the string the same way, but i want it to use the typewriter effect to do it!
No matter where i look, i cannot find an answer on how to make the typewriter effect, it will not type the function! I want it to type a random text based on the variable! Thanks!
this is my code.
Finalising Deletion...
<progress></progress>
<!DOCTYPE html>
<html>
<body>
<br><br>
<button onclick="typeWriter()">View Status</button>
<p id="demo"></p>
<script>
var i = 0;
var txt = randomText();
var speed = 50;
function typeWriter() {
if (i < txt.length) {
document.getElementById("demo").innerHTML += (i);
i++;
setTimeout(typeWriter, speed);
}
}
function randomText() {
//array splashes
var say = [];
say[0] = "Moving Core Files...";
say[1] = "Deleting JavaScript";
say[2] = "Uploading Data...";
say[3] = "Editing HTML...";
say[4] = "Disabling Server.js";
say[5] = "Deleting Cookies...";
say[6] = "Deleted Files (3/754)";
say[7] = "Attempting URL Shutdown";
say[8] = "Uploading Deletion Program!";
say[9] = "Deleting URL...";
say[10] = "Changing CSS";
say[11] = "Deleting Inside Fules...";
//pick a random greeting
var howmany = 11;
var bRand = 0;
bRand = Math.random();
bRand = Math.floor(bRand * howmany);
//prepare and docwrite the greeting
sayWhat = say[bRand];
document.write(sayWhat);
document.close();
//direct type in html p element
//document.getElementById("splash").innerHTML ='javascript:alert("' + '");'
// I tried to make this work but it says no.
}
</script>
</body>
</html>
<script style="color:white" language="JavaScript" type="text/javascript">
//script to generate random greetings
</script>
<script style="color:white" type="text/javascript">
</script>
Well your
randomTextfunction doesn't return anything. So the variabletxtis alwaysundefined. You need to addreturn sayWhatat the end of yourrandomTextfunction.Furthermore in your
typeWriterfunction you are appending the actual index of the letter not the letter itself. By replacing+= (i)with+= txt[i]that is solved aswell.If you don't want to show the initial value you need to remove the
document.writeline aswell.