簡體   English   中英

如何延遲每個循環迭代以創建順序效果?

[英]How to delay each loop iteration to create sequential effect?

是否可以在forEach內部添加延遲,以便在將每個span innerHTML HTML按順序交換出來時看到輕微的延遲。 在我的循環發生的那一刻,相對跨度被注入,但是循環如此之快,以至於所有字母同時出現。 如果可能的話,最好將每次注入延遲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

您可以始終 創建一個繼續調用自身的函數,直到到達數組末尾為止 使用遞歸:

function createHtml(array, index, elems) {
    elems[index].innerHTML = array[index++];
    if ((index + 1) <= array.length) {
        setTimeout(function() {
            createHtml(array, index, elems);
        }, 200);
    }
}

var newStringArr = cities[i].split('');
var tickerSpans = ticker.children;

createHtml(newStringArr, 0, tickerSpans);

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM