0

我试图为一个又一个元素设置动画,但我对此有一些麻烦

    $.getJSON('http://localhost/json/example/json.json', function(data){
        var ele = jsonElements(data);
        for(var i = 1; i <= ele; i++)
        {
            $('#test').append('<a href="#" id="t_'+i+'" class="block-icon"></a>');
            $('#t_'+i).animate({
                'top': data['t_'+i]['top'],
                'left': data['t_'+i]['left']
                }, 800).delay(1000);
        }

    });

它可以工作,但是所有元素都同时具有动画,有什么建议如何一个接一个地制作吗?

4

1 回答 1

0
$.getJSON('http://localhost/json/example/json.json', function(data){
        var ele = jsonElements(data);
        one_by_one(ele,1);
    });

function one_by_one(ele,i){
if(i > ele)
return;

$('#test').append('<a href="#" id="t_'+i+'" class="block-icon"></a>');
$('#t_'+i).animate({
                'top': data['t_'+i]['top'],
                'left': data['t_'+i]['left']
                }, 1000, function() {
    // Animation complete
    one_by_one(ele,i+1);
  });

}

调用 one_by_one(i);

我在http://jsfiddle.net/VS8tQ/64/上添加了一个示例

于 2012-09-08T11:23:21.603 回答