我試圖使代碼的代碼太多時間工作正常計算器,但是當我添加JavaScript代碼,它有stopped.any方式 我有這樣的代碼:JavaScript的setTimeout的時間比預期EXCUTE
showCharacters("hey, how are you");
function showCharacters(text) {
var charactersArray = new String(text).split('');
var i;
for (i = 0; i < charactersArray.length; i++) {
setCharacter(i, charactersArray);
}
deleteAll(i - 1);
}
function setCharacter(i, charactersArray) {
setTimeout(function() {
document.getElementById("characters").innerHTML = document.getElementById("characters").innerHTML + charactersArray[i];
}, 1000 * i);
}
function deleteAll(i) {
setTimeout(function() {
var text = document.getElementById("characters").innerHTML;
var charactersArray = new String(text).split('');
var charactersArrayLength = charactersArray.length - 1;
for (var j = charactersArrayLength; j >= 0; j--) {
charactersArray.splice(j, 1);
deleteCharacter(charactersArray.join(""), i + charactersArrayLength - j + 1);
}
}, (i + 1) * 1000);
}
function deleteCharacter(text, i) {
setTimeout(function() {
document.getElementById("characters").innerHTML = text;
}, 1000 * i);
}
#divContainer {
display: flex;
align-items: center;
float: right;
}
#characters {
font-weight: 700;
color: rgb(0, 0, 0);
font-size: 40px;
padding-top: 2px;
white-space: nowrap;
}
<div id="divContainer">
<h1 id="characters">
</h1>
</div>
我做的代碼寫一個字符每秒,完整的文本後,會刪除一個字符每秒,問題是,完成文字它將等待幾秒鐘,開始刪除前,後人物。我沒有那樣做。
我跟着settimeout方法的時間值,一切都很好。
我希望它在完成文本後直接開始刪除字符。
請任何幫助。
一對夫婦一般的言論:請編輯代碼片段時,使用[整潔]按鈕,它使代碼更易讀。另外,我建議讓變量名縮短一點,例如使用'i'或'j'作爲索引是非常常見的,比現在所有的文本都要好。 –
/*編輯後:* /謝謝,更好 –
哦,謝謝你。你歡迎你 – phoenix