javascript - 排队变量动画

标签 javascript jquery animation foreach

我正在尝试使用 .animate() 为变量设置动画,虽然变量可以正确设置动画,但排队的默认参数似乎不起作用,这意味着我的所有动画都一起播放。我想知道是否可以采取任何措施来阻止这些函数同时运行。

这是我的位置数组,每行包含我想要动画的不同数字,每行需要单独执行。

    position: [
        {x: 1400},
        {x: 2800},
        ]

当我的脚本到达此点时,它会启动此函数

function animate (varStore) {
varStore.position.forEach(function(position) {
        $({value: startingValue}).animate({value: position.x}, {
            duration: 5000,
            step: function() { 
                variableToChange = this.value;
            }
        });
});

它比上面的要复杂一些,但是为了可读性,这是我可以做的最基本的。

如何停止此 forEach 循环立即再次运行并等待上一个动画完成?

我到处寻找解决方案,但似乎找不到任何东西。

我也愿意完全改变我处理这个问题的方式,如果有任何关于如何让它真正发挥作用的建议,我将不胜感激。

最佳答案

我将在此处使用 native Javascript setTimeout:

function animate (varStore) {
varStore.position.forEach(function(position) {
    var timer = setTimeout((function(){
        $({value: startingValue}).animate({value: position.x}, {
            duration: 5000,
            step: function() { 
                variableToChange = this.value;
            }
        });
    }), 5000);
});

关于javascript - 排队变量动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48133009/

相关文章:

javascript - "Proceed Anyway"使用 javascript 点击 "not trusted"SSL 证书

javascript - 从 Jquery slider 获取值并使其成为 ID

javascript - jQuery Multiselect - 全选并带有过滤搜索

javascript - 如何将页面滚动链接到 div 元素滚动?或者如何使用页面滚动来滚动 div 元素?

jquery - 复选框在窗口调整大小时变为未选中状态

javascript - 必须刷新才能运行功能

javascript - 在一个 css 类中设置最大宽度动画

android - 为 Android 应用程序选择 flash/openGL/其他动画?

c++ - OpenGL 中 DirectX 文件的骨骼动画

javascript - 返回元素的 html 以及 jquery 中的元素