如何延迟每个循环迭代以创建顺序效果?

时间:2015-05-05 18:59:21

标签: javascript

是否可以在forEach内添加延迟,以便在按顺序换出每个范围innerHTML时看到轻微的延迟。在我的循环发生的那一刻,相对跨度被注入,但循环是快速的,所有字母同时出现。如果可能的话,将每次注入延迟200毫秒会很好,我只想说明如何做到这一点。

JS代码段

function showCity() {
    newStringArr = cities[i].split('');

    var tickerSpans = ticker.children;      
    newStringArr.forEach(function(letter, idx) {

        // Delay each assignment by 200ms?
        tickerSpans[idx].innerHTML = letter;

    });

    i++;

    if(i <= 2) {
        setTimeout(function() {
            randomWordInterval = setInterval(randomiser, SPEED, false);
        }, PAUSE);
    }
}

代码链接http://codepen.io/styler/pen/jPPRyy?editors=001

1 个答案:

答案 0 :(得分:2)

你总是可以创建一个只是继续调用自己的函数,直到它到达数组的末尾使用递归:

MyClass.java

工作演示:http://codepen.io/anon/pen/PqPjqe