luke-else.co.uk/js/type.js

52 lines
1.3 KiB
JavaScript
Raw Normal View History

class typer{
constructor(text, retypeText){
this.i = 0;
this.x = 0;
this.item = document.getElementById("type");
this.text = text;
this.retypeText = retypeText;
}
type(){
this.item.innerHTML += this.text[this.x].charAt(this.i);
this.i++;
if (this.i < this.text[this.x].length) {
setTimeout(() => {
this.type();
}, 150);
}else{
if(this.retypeText == true){
this.i = 0;
setTimeout(() => {
this.retype();
}, 2000);
}
}
}
retype() {
this.item.innerHTML = this.item.innerHTML.substring(0, this.item.innerHTML.length-1);
if (this.item.innerHTML.length > 0) {
setTimeout(() => {
this.retype();
}, 100);
}else{
this.x++;
//this.x > this.text.length -1 || loop
if(this.x >= this.text.length - 1){
//this.x = 0;
this.retypeText = false;
}
this.type();
}
}
}
var pagetyper = new typer(["//Apprentice C++ Software Engineer", "//Aspring Rust Dev"], true);
setTimeout(() =>{
pagetyper.type();
}, 750)