let blinkText = document.querySelector('.typing');
let typingBool = false;
let typingIdx = 0;
let arrIndex = 0;
let nagativeNumber = -1;
let tyInt = null;
const textEl = ["부지런하고", "자유롭고", "인정받고"];
let typingTxt = textEl[arrIndex];
textEl
를 통해 타이핑될 텍스트를 가져오고 HTML요소를 가져온다.
if (typingBool == false) {
typingBool = true;
tyInt = setInterval(typing, 200);
}
typingBool
을 true
로 바꾸고 typing
함수를 실행한다.function typing() {
if (typingIdx < typingTxt.length) {
blinkText.append(typingTxt[typingIdx]);
typingIdx++;
if (typingIdx == typingTxt.length) {
//첫번째 단어가 써지면 1초쉰다.
clearInterval(tyInt);
setTimeout(function () {
tyInt = setInterval(typing, 200);
}, 1000);
}
} else {
if (-typingTxt.length - 1 < nagativeNumber) {
blinkText.innerHTML = typingTxt.slice(0, nagativeNumber);
nagativeNumber--;
} else {
if (arrIndex >= textEl.length - 1) {
arrIndex = 0;
} else {
arrIndex++;
}
variableInit();
//1초후 다음문장 타이핑
clearInterval(tyInt);
setTimeout(function () {
tyInt = setInterval(typing, 200);
}, 1000);
}
}
}
function variableInit() {
//변수초기화
typingIdx = 0;
nagativeNumber = -1;
typingTxt = textEl[arrIndex];
}
전체적인 틀을 보면 이렇게 나눌수있다.