我正在尝试在我的简历页面上复制打字机效果,并且除了一部分之外还可以工作:

while (i < tags.length) {
    type(tags[i], content[i], 0, 50);
    i++;
}

这是写出行的函数,它工作正常,除了它一次写出所有行的事实。我希望它写一行,然后继续下一行,依此类推。我知道解决方案在于添加回调函数,但我似乎无法让它正常工作。任何帮助/建议将不胜感激。谢谢!

此外,这里是完整的 jsfiddle

最佳答案

回调和递归函数似乎是要走的路

var type = function (target, message, index, interval, callback) {
    if (index < message.length) {
        $(target).append(message[index++]);
        setTimeout(function () {
            type(target, message, index, interval, callback);
        }, interval);
    } else {
        callback();
    }
}

var i = 0;

(function recursive() {
    if (i < tags.length) {
        type(tags[i], content[i], 0, 50, recursive);
        i++;
    }
})();

FIDDLE

关于javascript - 将回调添加到 javascript while 循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29719630/

10-16 12:57