Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按循环顺序依次显示字母_Javascript_Html - Fatal编程技术网

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()
。非常感谢。非常感谢。