javascript - setTimeout-caption 替代方案

标签 javascript animation

我想知道我们是否可以做一些更优化的事情,而不仅仅是多次嵌套 setTimeout 来为一堆元素一个接一个地设置动画,就像这个丑陋的东西:

    setTimeout(function () {
        $('div[data-order="0"]').parent().removeClass('flipped');
        setTimeout(function () {
            $('div[data-order="1"]').parent().removeClass('flipped');
            setTimeout(function () {
               $('div[data-order="2"]').parent().removeClass('flipped');
            }, 75);
        }, 75);
    }, 75);

最佳答案

您可以使用一个函数:

function flipByOrder(order) {
    $('div[data-order="' + order + '"]').parent().removeClass('flipped');
    if (order <= 1) {
        setTimeout(function() { flipByOrder(order + 1); }, 75);
    }
}
flipByOrder(0);

您还可以使用setInterval:

var order = 0;
var interval = setInterval(function() {
    $('div[data-order="' + order + '"]').parent().removeClass('flipped');
    order++;
    if (order > 2) clearInterval(interval);
}, 75);

关于javascript - setTimeout-caption 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25515111/

相关文章:

javascript - p5.j​​s 数组元素之间的碰撞

javascript - 是否可以将 ng-if 与服务值一起使用?

python - 在 Python 中绘制动画 slider

python - 游戏代码中存在缩进问题

javascript - JQuery:图像库向下滑动图像并在 src 中淡入淡出

java - 绘制到 java.awt.graphics 对象中的有效方法

javascript - 为什么我的导入在 Chrome 67 的 EMCAScript 6 中不起作用?

javascript - ember 1.7.1 不适用于 Handlebars 2.0.0

javascript - Highcharts重绘前一行仍然存在

Delphi TGIFImage 动画问题与某些 GIF 查看器有关