javascript - 我需要一个不是 setTimeout() 的延迟

标签 javascript jquery function delay

这是我拥有的代码,我想要编写它,以便字母(句子参数)能够一一键入。不是一次全部。我一直尝试使用 setTimeout() 但我无法做到这一点,这样它就可以保持进度。请帮忙。

var letters = [];

function typeOut(sentence, code) {
    $('body').append('<p id=' + code + '></p>');


    for (i = 0; i < sentence.length; i++) {
        letters[i] = sentence[i];
        $('#' + code).append(letters[i]);
    }
}

typeOut("Hello World", 1);

提前致谢!

最佳答案

setTimeout 看起来很完美。我猜你用错了。

function typeOut(sentence) {
  var txt = document.body
    .appendChild(document.createElement('p'))
    .appendChild(document.createTextNode(''));
  var i = 0;
  (function typeLetter() {
    if(i < sentence.length) {
      txt.nodeValue += sentence[i];
      ++i;
      setTimeout(typeLetter, 100);
    }
  })();
}
typeOut("Hello World");

关于javascript - 我需要一个不是 setTimeout() 的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38806487/

相关文章:

javascript - Unicode 正则表达式 : Compilation failed: range out of order in character class

jquery - 如何从具有相同名称字段的表单创建 JSON 文件?

jquery - 实现 History.js HTML4 回退

python-3.x - Python - 迭代列表 -Lambda

javascript - 使用 React Router v4 检查特定的 url 结尾

javascript - 为什么 JavaScript 等式前面带有 toFixed 加号?

javascript - 为什么 AngularJS `orderBy` 过滤器会忽略 `comparator` 参数?

javascript - MVC5 Controller 未接收ajax发布的html内容

javascript - 使用 Ajax 和 Javascript 从 html 按钮运行 php 文件

c++ - Visual Studio 2013 c++ 函数语法错误