我想一个接一个地显示多个字符串,并且我希望每个字符串中的字母一次出现一个,直到该字符串完整并循环到下一个字符串。应该连续运行。



var example = ['IT Solutions', 'Professional Work Ethic'];
textSequence(0);
function textSequence(i) {
  if (example.length > i) {
    setTimeout(function() {
      document.getElementById("sequence").innerHTML = example[i];
      textSequence(++i);
    }, 4000);
  } else if (example.length == i) { // Loop
    textSequence(0);
  }
}

<div class="container" id="sequence"></div>

最佳答案

我更喜欢@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);
}

07-24 09:30