Javascript 按循环顺序依次显示字母
我希望依次显示多个字符串,并希望每个字符串中的字母一次显示一个,直到字符串完成并循环到下一个字符串。应该在连续循环中运行Javascript 按循环顺序依次显示字母,javascript,html,Javascript,Html,我希望依次显示多个字符串,并希望每个字符串中的字母一次显示一个,直到字符串完成并循环到下一个字符串。应该在连续循环中运行 var示例=[“IT解决方案”,“职业职业道德]; 文本序列(0); 函数textSequence(i){ 如果(例如:长度>i){ setTimeout(函数(){ document.getElementById(“序列”).innerHTML=example[i]; textSequence(++i); }, 4000); }如果(example.length==i){
var示例=[“IT解决方案”,“职业职业道德];
文本序列(0);
函数textSequence(i){
如果(例如:长度>i){
setTimeout(函数(){
document.getElementById(“序列”).innerHTML=example[i];
textSequence(++i);
}, 4000);
}如果(example.length==i){//Loop
文本序列(0);
}
}
您可以连接字符串,然后在其上循环,几乎与您的操作相同。但是您需要保留值
并递归地传递它,以跟踪您已经拥有的内容
这可能不是你想要的,但我想你可以用这个来解决
var示例=[“IT解决方案”,“职业职业道德];
var eString=example.join(“”);
textSequence(0,,);
函数textSequence(i,值){
如果(eString.length>i){
setTimeout(函数(){
价值+=限制[i];
document.getElementById(“序列”).innerHTML=value;
文本序列(++i,值);
}, 100);
}else如果(eString.length==i){//Loop
textSequence(0,,);
}
}
您可以连接字符串,然后在其上循环,几乎与您的操作相同。但是您需要保留值
并递归地传递它,以跟踪您已经拥有的内容
这可能不是你想要的,但我想你可以用这个来解决
var示例=[“IT解决方案”,“职业职业道德];
var eString=example.join(“”);
textSequence(0,,);
函数textSequence(i,值){
如果(eString.length>i){
setTimeout(函数(){
价值+=限制[i];
document.getElementById(“序列”).innerHTML=value;
文本序列(++i,值);
}, 100);
}else如果(eString.length==i){//Loop
textSequence(0,,);
}
}
我更喜欢@adpro的答案,但这里有一个替代方案可以保留您原来的数组:
showLettersOf(
['IT Solutions', 'Professional Work Ethic'],
document.querySelector('#sequence')
);
function showLettersOf(arrayOfStrings, el) {
var stringIndex=0, letterIndex=0, str="";
return setInterval(function(){
str += arrayOfStrings[stringIndex].charAt(letterIndex++);
el.innerHTML = str;
if (letterIndex >= arrayOfStrings[stringIndex].length){
letterIndex=0;
str="";
if (++stringIndex >= arrayOfStrings.length) stringIndex=0;
}
}, 100);
}
我更喜欢@adpro的答案,但这里有一个替代方案可以保留您原来的数组:
showLettersOf(
['IT Solutions', 'Professional Work Ethic'],
document.querySelector('#sequence')
);
function showLettersOf(arrayOfStrings, el) {
var stringIndex=0, letterIndex=0, str="";
return setInterval(function(){
str += arrayOfStrings[stringIndex].charAt(letterIndex++);
el.innerHTML = str;
if (letterIndex >= arrayOfStrings[stringIndex].length){
letterIndex=0;
str="";
if (++stringIndex >= arrayOfStrings.length) stringIndex=0;
}
}, 100);
}
在最后一个字符串的最后一个字母之后应该发生什么?回溯到开头在最后一个字符串的最后一个字母之后应该发生什么?回溯到开头从描述中我不清楚您是否希望每次都“构建”完整的字符串,例如“I”、“IT”、“IT S”等,或者您是否希望显示每个字母,例如“I”,“T”、“S”、“T”。我使用前者;如果您想要后者,请去掉
str
变量,每次只需将innerHTML设置为charAt()
。非常感谢。谢谢。从描述中我不清楚您是否希望每次都“构建”完整字符串,例如“I”、“It”、“It”、“It”,或如果您希望显示每个字母,例如“I”、“T”、“S”。我和前者一起去;如果您想要后者,请去掉str
变量,每次只需将innerHTML设置为charAt()
。非常感谢。非常感谢。