使用JavaScript,我创建了一个对象数组。对象的属性之一是Raphael形状。

使用$.each(arr, function() {});,我已经绘制了形状,但是我希望它们快速连续地成为fadeIn。因此,arr[1].hexagon将先是fadeIn,然后是arr[2],依此类推。通过将fadeIn附加到对象上,我已经能够统一获得所有.animate(),但是我不知道如何计时JavaScript。

我想更一般地说,是否有使用Raphael或jQuery控制序列和时间的技巧?

最佳答案

这不使用raphael或jquery,而只是在javascript中延迟数组迭代的一种方法:

var doSomethingWithValue = function(v) {
    // your call to animate the object, or do anything really.
    console.log(v);
}

var timer = function(a, n) {
    var delay = 1000; // a second, probably change this to same duration as the fadeIn()
    doSomethingWithValue(a[n]); // do work
    n += 1;
    if (n == a.length) {
        // if we're at the end, return
        return;
    } else {
        // repeat after delay
        setTimeout(function() {timer(a, n)}, delay);
    }
}

var arr = [1,2,3];
// kick things off starting at first entry
timer(arr, 0);

那对你有用吗?

关于javascript - 对Raphael Javascript动画序列进行动画处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8647078/

10-09 08:15
查看更多